﻿// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DocumentFormat.OpenXml;
using DocumentFormat.OpenXml.Packaging;

namespace DocumentFormat.OpenXml.Validation.Semantic
{
	internal partial class SemanticConstraintRegistry
	{
		public void Initialize()
		{
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.Control), FileFormatVersions.Office2007, ApplicationType.All, new RelationshipTypeConstraint(2 /*r:id*/, "http://schemas.openxmlformats.org/officeDocument/2006/relationships/control"));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.EmbedBoldFont), FileFormatVersions.Office2007, ApplicationType.All, new RelationshipTypeConstraint(2 /*r:id*/, "http://schemas.openxmlformats.org/officeDocument/2006/relationships/font"));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.Endnote), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(1 /*w:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.EndnoteSpecialReference), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*w:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.FootnoteSpecialReference), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*w:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.Footnote), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(1 /*w:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.FootnoteReference), FileFormatVersions.Office2007, ApplicationType.All, new ReferenceExistConstraint(1 /*w:id*/, "FootnotesPart", typeof(DocumentFormat.OpenXml.Wordprocessing.Footnote), "DocumentFormat.OpenXml.Wordprocessing.Footnote", 1 /*w:id*/));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.DecimalSymbol), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValuePatternConstraint(0 /*w:val*/, @".{1}"));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.ListSeparator), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValuePatternConstraint(0 /*w:val*/, @".{1}"));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.AltChunk), FileFormatVersions.Office2007, ApplicationType.All, new RelationshipTypeConstraint(0 /*r:id*/, "http://schemas.openxmlformats.org/officeDocument/2006/relationships/aFChunk"));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.CustomWorkbookView), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(16 /*:windowWidth*/, true, double.NegativeInfinity, true, 2147483647, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.CustomWorkbookView), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(18 /*:tabRatio*/, true, double.NegativeInfinity, true, 1000, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.CustomWorkbookView), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(19 /*:activeSheetId*/, true, 1, true, 65534, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.FileSharing), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(1 /*:userName*/, 1, 54));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.FileVersion), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(0 /*:appName*/, 0, 65535));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.FileVersion), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(1 /*:lastEdited*/, 0, 65535));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.FileVersion), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(2 /*:lowestEdited*/, 0, 65535));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.FileVersion), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(3 /*:rupBuild*/, 0, 65535));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.FunctionGroups), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(0 /*:builtInGroupCount*/, true, double.NegativeInfinity, true, 255, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Sheet), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValuePatternConstraint(0 /*:name*/, @"[^'*\[\]/\\:?]{1}[^*\[\]/\\:?]*"));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Sheet), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(0 /*:name*/, 1, 31));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Sheet), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*:name*/, false, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Sheet), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(1 /*:sheetId*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Sheet), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(1 /*:sheetId*/, true, 1, true, 65534, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Sheet), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(3 /*r:id*/, 0, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.WorkbookView), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(7 /*:windowWidth*/, true, double.NegativeInfinity, true, 2147483647, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.WorkbookView), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(8 /*:windowHeight*/, true, double.NegativeInfinity, true, 2147483647, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.WorkbookView), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(9 /*:tabRatio*/, true, double.NegativeInfinity, true, 1000, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.WorkbookView), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(11 /*:activeTab*/, true, 0, true, 32766, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Cell), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(3 /*:cm*/, true, double.NegativeInfinity, true, 2147483647, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Cell), FileFormatVersions.Office2007, ApplicationType.All, new IndexReferenceConstraint(3 /*:cm*/, "/WorkbookPart/CellMetadataPart", typeof(DocumentFormat.OpenXml.Spreadsheet.CellMetadata), typeof(DocumentFormat.OpenXml.Spreadsheet.MetadataBlock), "DocumentFormat.OpenXml.Spreadsheet.MetadataBlock", 1));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Cell), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(4 /*:vm*/, true, double.NegativeInfinity, true, 2147483648, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Cell), FileFormatVersions.Office2007, ApplicationType.All, new IndexReferenceConstraint(4 /*:vm*/, "/WorkbookPart/CellMetadataPart", typeof(DocumentFormat.OpenXml.Spreadsheet.ValueMetadata), typeof(DocumentFormat.OpenXml.Spreadsheet.MetadataBlock), "DocumentFormat.OpenXml.Spreadsheet.MetadataBlock", 1));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Cell), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(1 /*:s*/, true, 0, true, 65490, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Cell), FileFormatVersions.Office2007, ApplicationType.All, new IndexReferenceConstraint(1 /*:s*/, "/WorkbookPart/WorkbookStylesPart", typeof(DocumentFormat.OpenXml.Spreadsheet.CellFormats), typeof(DocumentFormat.OpenXml.Spreadsheet.CellFormat), "DocumentFormat.OpenXml.Spreadsheet.CellFormat", 0));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.CellWatch), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*:r*/, true, typeof(DocumentFormat.OpenXml.Spreadsheet.CellWatches)));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.ConditionalFormattingRule), FileFormatVersions.Office2007, ApplicationType.All, new AttributeRequiredConditionToValue(7 /*:operator*/, 0 /*:type*/ , "cells") );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.ConditionalFormattingRule), FileFormatVersions.Office2007, ApplicationType.All, new AttributeRequiredConditionToValue(9 /*:timePeriod*/, 0 /*:type*/ , "timePeriod") );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Column), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(8 /*:outlineLevel*/, true, 0, true, 7, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Column), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(0 /*:min*/, true, 1, true, 16384, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Column), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(1 /*:max*/, true, 1, true, 16384, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Column), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(2 /*:width*/, true, 0, true, 255, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Column), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(3 /*:style*/, true, 0, true, 65429, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.ColumnBreaks), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(0 /*:count*/, true, double.NegativeInfinity, true, 1023, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.ColumnBreaks), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(1 /*:manualBreakCount*/, true, double.NegativeInfinity, true, 1023, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.ConditionalFormatting), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(1 /*:sqref*/, 1, int.MaxValue));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Control), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(0 /*:shapeId*/, true, 1, true, 67098623, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.CustomProperty), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*:name*/, false, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.CustomChartsheetView), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(1 /*:scale*/, true, 10, true, 400, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.CustomSheetView), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(2 /*:colorId*/, true, double.NegativeInfinity, true, 64, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.CustomSheetView), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueSetConstraint(0 /*:guid*/, false, new string[] { "00000000-0000-0000-0000-000000000000" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.DataValidation), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(12 /*:sqref*/, true, 1, true, 32767, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.DataValidation), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(8 /*:errorTitle*/, 0, 32));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.DataValidation), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(10 /*:promptTitle*/, 0, 32));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.CellFormula), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueSetConstraint(11 /*:bx*/, true, new string[] { "false" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.CellFormula), FileFormatVersions.Office2007, ApplicationType.All, new AttributeRequiredConditionToValue(10 /*:si*/, 0 /*:t*/ , "shared") );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Hyperlink), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(2 /*:location*/, 0, 2084));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Hyperlink), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(4 /*:display*/, 0, 2084));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Hyperlink), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(3 /*:tooltip*/, 0, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.IgnoredError), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(0 /*:sqref*/, true, double.NegativeInfinity, true, 2147483647, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.OleObject), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValuePatternConstraint(0 /*:progId*/, @"[^\d].*"));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.OleObject), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(0 /*:progId*/, 0, 39));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.OleObject), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(5 /*:shapeId*/, true, 1, true, 67098623, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.PageMargins), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(0 /*:left*/, true, 0, true, 49, false));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.PageMargins), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(1 /*:right*/, true, 0, true, 49, false));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.PageMargins), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(2 /*:top*/, true, 0, true, 49, false));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.PageMargins), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(3 /*:bottom*/, true, 0, true, 49, false));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.PageMargins), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(4 /*:header*/, true, 0, true, 49, false));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.PageMargins), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(5 /*:footer*/, true, 0, true, 49, false));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.PivotSelection), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueSetConstraint(6 /*:axis*/, false, new string[] { "axisValues" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.ProtectedRange), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(6 /*:name*/, true, typeof(DocumentFormat.OpenXml.Spreadsheet.ProtectedRanges)));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.ProtectedRange), FileFormatVersions.Office2007, ApplicationType.Word, new AttributeValueLengthConstraint(6 /*:name*/, 1, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.ProtectedRange), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(5 /*:sqref*/, true, 1, true, double.PositiveInfinity, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Row), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(0 /*:r*/, true, 1, true, 1048576, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Row), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(7 /*:outlineLevel*/, true, 0, true, 7, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Row), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(2 /*:s*/, true, 0, true, 65490, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.RowBreaks), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(0 /*:count*/, true, double.NegativeInfinity, true, 1022, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.RowBreaks), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(1 /*:manualBreakCount*/, true, double.NegativeInfinity, true, 1022, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Scenario), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*:name*/, true, typeof(DocumentFormat.OpenXml.Spreadsheet.Worksheet)));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.SheetFormatProperties), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(8 /*:outlineLevelCol*/, true, 0, true, 7, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.SheetFormatProperties), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(7 /*:outlineLevelRow*/, true, 0, true, 7, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.SheetFormatProperties), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(0 /*:baseColWidth*/, true, double.NegativeInfinity, true, 255, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.SheetFormatProperties), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(1 /*:defaultColWidth*/, true, 0, true, 65535, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.SheetProperties), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValuePatternConstraint(6 /*:codeName*/, @"[\p{L}\P{IsBasicLatin}][_\d\p{L}\P{IsBasicLatin}]*"));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.ChartSheetProperties), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValuePatternConstraint(1 /*:codeName*/, @"[\p{L}\P{IsBasicLatin}][_\d\p{L}\P{IsBasicLatin}]*"));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.ChartSheetProperties), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(1 /*:codeName*/, 0, 32));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.SheetView), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(13 /*:colorId*/, true, double.NegativeInfinity, true, 64, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.TabColor), FileFormatVersions.Office2007, ApplicationType.All, new AttributeMutualExclusive(0, 1, 2, 3) /*:auto, :indexed, :rgb, :theme*/ );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.WebPublishItem), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(6 /*:title*/, 0, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.WebPublishItem), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(5 /*:destinationFile*/, 1, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.WebPublishItem), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(1 /*:divId*/, 1, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.WebPublishItem), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(0 /*:id*/, true, 1, true, 2147483647, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.WebPublishItem), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.WebPublishItem), FileFormatVersions.Office2007, ApplicationType.All, new AttributeRequiredConditionToValue(3 /*:sourceRef*/, 2 /*:sourceType*/ , "range") );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.WebPublishItem), FileFormatVersions.Office2007, ApplicationType.All, new AttributeAbsentConditionToNonValue(3 /*:sourceRef*/, 2 /*:sourceType*/ , "range") );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.SharedStringTable), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(1 /*:uniqueCount*/, true, double.NegativeInfinity, true, 2147483647, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.SharedStringTable), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(0 /*:count*/, true, double.NegativeInfinity, true, 2147483647, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.FontSize), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(0 /*:val*/, true, 1, true, 409.55, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.TableColumn), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(2 /*:name*/, 0, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.TableColumn), FileFormatVersions.Office2007, ApplicationType.All, new AttributeAbsentConditionToValue(4 /*:totalsRowLabel*/, 3 /*:totalsRowFunction*/ , "custom") );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.TableColumn), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(9 /*:headerRowCellStyle*/, 1, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.TableColumn), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(11 /*:totalsRowCellStyle*/, 1, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.TableColumn), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(5 /*:queryTableFieldId*/, true, 1, true, double.PositiveInfinity, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.TableColumn), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(0 /*:id*/, true, 1, true, double.PositiveInfinity, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.TableColumn), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(4 /*:totalsRowLabel*/, 0, 32767));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.TableColumn), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(10 /*:dataCellStyle*/, 1, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.XmlColumnProperties), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(1 /*:xpath*/, 0, 32000));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.SingleXmlCell), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(0 /*:id*/, true, 1, true, 4294967294, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.SingleXmlCell), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(2 /*:connectionId*/, true, double.NegativeInfinity, true, 2147483647, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.XmlCellProperties), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueSetConstraint(0 /*:id*/, true, new string[] { "1" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.XmlProperties), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(1 /*:xpath*/, 0, 32000));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.XmlProperties), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(0 /*:mapId*/, true, 1, true, 2147483647, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.CalculationCell), FileFormatVersions.Office2007, ApplicationType.All, new AttributeMutualExclusive(3, 2) /*:l, :s*/ );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.CellStyle), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(0 /*:name*/, 0, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.CellStyle), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(2 /*:builtinId*/, true, 0, true, 53, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.CellStyle), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(3 /*:iLevel*/, true, 0, true, 7, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.CellStyle), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(1 /*:xfId*/, true, typeof(DocumentFormat.OpenXml.Spreadsheet.CellStyles)));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Table), FileFormatVersions.Office2007, ApplicationType.All, new IndexReferenceConstraint(13 /*:dataDxfId*/, "/WorkbookPart/WorkbookStylesPart", null, typeof(DocumentFormat.OpenXml.Spreadsheet.DifferentialFormat), "DocumentFormat.OpenXml.Spreadsheet.DifferentialFormat", 0));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Table), FileFormatVersions.Office2007, ApplicationType.All, new IndexReferenceConstraint(15 /*:headerRowBorderDxfId*/, "/WorkbookPart/WorkbookStylesPart", null, typeof(DocumentFormat.OpenXml.Spreadsheet.DifferentialFormat), "DocumentFormat.OpenXml.Spreadsheet.DifferentialFormat", 0));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Table), FileFormatVersions.Office2007, ApplicationType.All, new IndexReferenceConstraint(12 /*:headerRowDxfId*/, "/WorkbookPart/WorkbookStylesPart", null, typeof(DocumentFormat.OpenXml.Spreadsheet.DifferentialFormat), "DocumentFormat.OpenXml.Spreadsheet.DifferentialFormat", 0));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Table), FileFormatVersions.Office2007, ApplicationType.All, new IndexReferenceConstraint(16 /*:tableBorderDxfId*/, "/WorkbookPart/WorkbookStylesPart", null, typeof(DocumentFormat.OpenXml.Spreadsheet.DifferentialFormat), "DocumentFormat.OpenXml.Spreadsheet.DifferentialFormat", 0));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Table), FileFormatVersions.Office2007, ApplicationType.All, new IndexReferenceConstraint(17 /*:totalsRowBorderDxfId*/, "/WorkbookPart/WorkbookStylesPart", null, typeof(DocumentFormat.OpenXml.Spreadsheet.DifferentialFormat), "DocumentFormat.OpenXml.Spreadsheet.DifferentialFormat", 0));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Table), FileFormatVersions.Office2007, ApplicationType.All, new IndexReferenceConstraint(14 /*:totalsRowDxfId*/, "/WorkbookPart/WorkbookStylesPart", null, typeof(DocumentFormat.OpenXml.Spreadsheet.DifferentialFormat), "DocumentFormat.OpenXml.Spreadsheet.DifferentialFormat", 0));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.GradientFill), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(4 /*:top*/, true, 0, true, 1, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.GradientFill), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(5 /*:bottom*/, true, 0, true, 1, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.GradientFill), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(2 /*:left*/, true, 0, true, 1, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.GradientFill), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(3 /*:right*/, true, 0, true, 1, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.GradientFill), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(1 /*:degree*/, true, -1.7E+308, true, 1.7E+308, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.NumberingFormat), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(1 /*:formatCode*/, 0, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.GradientStop), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(0 /*:position*/, true, 0, true, 1, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.TableStyleElement), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(1 /*:size*/, true, 1, true, 9, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.TableStyles), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(1 /*:defaultTableStyle*/, 1, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.MetadataRecord), FileFormatVersions.Office2007, ApplicationType.All, new IndexReferenceConstraint(0 /*:t*/, ".", null, typeof(DocumentFormat.OpenXml.Spreadsheet.MetadataType), "DocumentFormat.OpenXml.Spreadsheet.MetadataType", 1));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.MetadataRecord), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(0 /*:t*/, true, double.NegativeInfinity, true, 2147483647, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Connection), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(5 /*:name*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Connection), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(7 /*:type*/, true, 1, true, 8, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.ExternalSheetData), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(0 /*:sheetId*/, true, 0, true, 65533, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.DataBinding), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*:DataBindingName*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.DataBinding), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(3 /*:FileBindingName*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.Pictures.NonVisualDrawingProperties), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*:id*/, true, typeof(DocumentFormat.OpenXml.Drawing.GraphicData)));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.Wordprocessing.DocProperties), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.Spreadsheet.NonVisualDrawingProperties), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.ChartDrawing.NonVisualDrawingProperties), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.Diagrams.RelationshipIds), FileFormatVersions.Office2007, ApplicationType.All, new RelationshipTypeConstraint(3 /*r:cs*/, "http://schemas.openxmlformats.org/officeDocument/2006/relationships/diagramColors"));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.Diagrams.RelationshipIds), FileFormatVersions.Office2007, ApplicationType.All, new RelationshipTypeConstraint(0 /*r:dm*/, "http://schemas.openxmlformats.org/officeDocument/2006/relationships/diagramData"));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.Diagrams.RelationshipIds), FileFormatVersions.Office2007, ApplicationType.All, new RelationshipTypeConstraint(1 /*r:lo*/, "http://schemas.openxmlformats.org/officeDocument/2006/relationships/diagramLayout"));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.Diagrams.RelationshipIds), FileFormatVersions.Office2007, ApplicationType.All, new RelationshipTypeConstraint(2 /*r:qs*/, "http://schemas.openxmlformats.org/officeDocument/2006/relationships/diagramQuickStyle"));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.Diagrams.Shape), FileFormatVersions.Office2007, ApplicationType.All, new RelationshipTypeConstraint(2 /*r:blip*/, "http://schemas.openxmlformats.org/officeDocument/2006/relationships/image"));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.Arc), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueSetConstraint(19 /*ovml:dgmlayout*/, true, new string[] { "0", "1", "2", "3" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.Arc), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueSetConstraint(21 /*ovml:dgmlayoutmru*/, true, new string[] { "0", "1", "2", "3" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.Arc), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(10 /*ovml:hrpct*/, true, 0, true, 1000, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.Arc), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(20 /*ovml:dgmnodekind*/, true, 0, true, 6, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.Arc), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueSetConstraint(29 /*ovml:spt*/, true, new string[] { "19" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.Curve), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueSetConstraint(30 /*ovml:dgmlayout*/, true, new string[] { "0", "1", "2", "3" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.Curve), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueSetConstraint(32 /*ovml:dgmlayoutmru*/, true, new string[] { "0", "1", "2", "3" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.Fill), FileFormatVersions.Office2007, ApplicationType.All, new RelationshipTypeConstraint(25 /*r:id*/, "http://schemas.openxmlformats.org/officeDocument/2006/relationships/image"));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.ImageData), FileFormatVersions.Office2007, ApplicationType.All, new RelationshipTypeConstraint(18 /*r:href*/, "http://schemas.openxmlformats.org/officeDocument/2006/relationships/image"));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.ImageData), FileFormatVersions.Office2007, ApplicationType.All, new RelationshipTypeConstraint(16 /*r:id*/, "http://schemas.openxmlformats.org/officeDocument/2006/relationships/image"));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.ImageData), FileFormatVersions.Office2007, ApplicationType.All, new RelationshipTypeConstraint(17 /*r:pict*/, "http://schemas.openxmlformats.org/officeDocument/2006/relationships/image"));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.ImageData), FileFormatVersions.Office2007, ApplicationType.All, new RelationshipTypeConstraint(15 /*ovml:relid*/, "http://schemas.openxmlformats.org/officeDocument/2006/relationships/image"));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.Stroke), FileFormatVersions.Office2007, ApplicationType.All, new RelationshipTypeConstraint(26 /*r:id*/, "http://schemas.openxmlformats.org/officeDocument/2006/relationships/image"));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.Group), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueSetConstraint(31 /*ovml:tableproperties*/, true, new string[] { "1", "2", "3" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.PivotCache), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*:cacheId*/, true, typeof(DocumentFormat.OpenXml.Spreadsheet.PivotCaches)));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.ConditionalFormattingRule), FileFormatVersions.Office2007, ApplicationType.All, new IndexReferenceConstraint(1 /*:dxfId*/, "/WorkbookPart/WorkbookStylesPart", null, typeof(DocumentFormat.OpenXml.Spreadsheet.DifferentialFormat), "DocumentFormat.OpenXml.Spreadsheet.DifferentialFormat", 0));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Column), FileFormatVersions.Office2007, ApplicationType.All, new IndexReferenceConstraint(3 /*:style*/, "/WorkbookPart/WorkbookStylesPart", null, typeof(DocumentFormat.OpenXml.Spreadsheet.CellFormat), "DocumentFormat.OpenXml.Spreadsheet.CellFormat", 0));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.PivotArea), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(11 /*:fieldPosition*/, true, 0, true, 255, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.SheetView), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(14 /*:zoomScale*/, true, 10, true, 400, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.SheetView), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(15 /*:zoomScaleNormal*/, true, 10, true, 400, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.SheetView), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(17 /*:zoomScalePageLayoutView*/, true, 10, true, 400, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.SheetView), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(16 /*:zoomScaleSheetLayoutView*/, true, 10, true, 400, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.ChartSheetView), FileFormatVersions.Office2007, ApplicationType.All, new IndexReferenceConstraint(2 /*:workbookViewId*/, "/WorkbookPart", null, typeof(DocumentFormat.OpenXml.Spreadsheet.WorkbookView), "DocumentFormat.OpenXml.Spreadsheet.WorkbookView", 0));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.ChartSheetView), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(1 /*:zoomScale*/, true, 10, true, 400, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.TabColor), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(4 /*:tint*/, true, -1, true, 1, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.ColorFilter), FileFormatVersions.Office2007, ApplicationType.All, new IndexReferenceConstraint(0 /*:dxfId*/, "/WorkbookPart/WorkbookStylesPart", null, typeof(DocumentFormat.OpenXml.Spreadsheet.DifferentialFormat), "DocumentFormat.OpenXml.Spreadsheet.DifferentialFormat", 0));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.DateGroupItem), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(2 /*:day*/, true, 1, true, 31, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.DateGroupItem), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(3 /*:hour*/, true, 0, true, 23, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.DateGroupItem), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(4 /*:minute*/, true, 0, true, 59, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.DateGroupItem), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(1 /*:month*/, true, 1, true, 12, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.DateGroupItem), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(5 /*:second*/, true, 0, true, 59, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.DateGroupItem), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(0 /*:year*/, true, 1000, true, 9999, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.RunPropertyCharSet), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(0 /*:val*/, true, 0, true, 255, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.PhoneticProperties), FileFormatVersions.Office2007, ApplicationType.All, new IndexReferenceConstraint(0 /*:fontId*/, "/WorkbookPart/WorkbookStylesPart", null, typeof(DocumentFormat.OpenXml.Spreadsheet.Font), "DocumentFormat.OpenXml.Spreadsheet.Font", 0));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.RunFont), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(0 /*:val*/, 0, 31));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.PhoneticRun), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLessEqualToAnother(0 /*:sb*/, 1 /*:eb*/, false) );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Table), FileFormatVersions.Office2007, ApplicationType.All, new ReferenceExistConstraint(21 /*:connectionId*/, "/WorkbookPart/ConnectionsPart", typeof(DocumentFormat.OpenXml.Spreadsheet.Connection), "DocumentFormat.OpenXml.Spreadsheet.Connection", 0 /*:id*/));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Table), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueSetConstraint(0 /*:id*/, false, new string[] { "0", "" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.TableColumn), FileFormatVersions.Office2007, ApplicationType.All, new IndexReferenceConstraint(7 /*:dataDxfId*/, "/WorkbookPart/WorkbookStylesPart", typeof(DocumentFormat.OpenXml.Spreadsheet.DifferentialFormats), typeof(DocumentFormat.OpenXml.Spreadsheet.DifferentialFormat), "DocumentFormat.OpenXml.Spreadsheet.DifferentialFormat", 0));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.TableColumn), FileFormatVersions.Office2007, ApplicationType.All, new IndexReferenceConstraint(6 /*:headerRowDxfId*/, "/WorkbookPart/WorkbookStylesPart", null, typeof(DocumentFormat.OpenXml.Spreadsheet.DifferentialFormat), "DocumentFormat.OpenXml.Spreadsheet.DifferentialFormat", 0));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.TableColumn), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*:id*/, true, typeof(DocumentFormat.OpenXml.Spreadsheet.Table)));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.TableColumn), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(2 /*:name*/, true, typeof(DocumentFormat.OpenXml.Spreadsheet.Table)));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.TableColumn), FileFormatVersions.Office2007, ApplicationType.All, new IndexReferenceConstraint(8 /*:totalsRowDxfId*/, "/WorkbookPart/WorkbookStylesPart", null, typeof(DocumentFormat.OpenXml.Spreadsheet.DifferentialFormat), "DocumentFormat.OpenXml.Spreadsheet.DifferentialFormat", 0));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.XmlColumnProperties), FileFormatVersions.Office2007, ApplicationType.All, new ReferenceExistConstraint(0 /*:mapId*/, "CustomXmlMappingsPart", typeof(DocumentFormat.OpenXml.Spreadsheet.Map), "DocumentFormat.OpenXml.Spreadsheet.Map", 0 /*:ID*/));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.SingleXmlCell), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.XmlCellProperties), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(1 /*:uniqueName*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.CalculationCell), FileFormatVersions.Office2007, ApplicationType.All, new ReferenceExistConstraint(1 /*:i*/, "/WorkbookPart", typeof(DocumentFormat.OpenXml.Spreadsheet.Sheet), "DocumentFormat.OpenXml.Spreadsheet.Sheet", 1 /*:sheetId*/));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Comment), FileFormatVersions.Office2007, ApplicationType.All, new IndexReferenceConstraint(1 /*:authorId*/, ".", null, typeof(DocumentFormat.OpenXml.Spreadsheet.Author), "DocumentFormat.OpenXml.Spreadsheet.Author", 0));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Comment), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(2 /*:guid*/, false, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Alignment), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(8 /*:readingOrder*/, true, 0, true, 2, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.BackgroundColor), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(4 /*:tint*/, true, -1, true, 1, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.CellStyle), FileFormatVersions.Office2007, ApplicationType.All, new IndexReferenceConstraint(1 /*:xfId*/, "/WorkbookPart/WorkbookStylesPart", null, typeof(DocumentFormat.OpenXml.Spreadsheet.CellFormat), "DocumentFormat.OpenXml.Spreadsheet.CellFormat", 0));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.ForegroundColor), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(4 /*:tint*/, true, -1, true, 1, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.TableStyleElement), FileFormatVersions.Office2007, ApplicationType.All, new IndexReferenceConstraint(2 /*:dxfId*/, "/WorkbookPart/WorkbookStylesPart", null, typeof(DocumentFormat.OpenXml.Spreadsheet.DifferentialFormat), "DocumentFormat.OpenXml.Spreadsheet.DifferentialFormat", 0));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.CellFormat), FileFormatVersions.Office2007, ApplicationType.All, new IndexReferenceConstraint(3 /*:borderId*/, "/WorkbookPart/WorkbookStylesPart", null, typeof(DocumentFormat.OpenXml.Spreadsheet.Border), "DocumentFormat.OpenXml.Spreadsheet.Border", 0));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.CellFormat), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(3 /*:borderId*/, true, 0, true, double.PositiveInfinity, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.CellFormat), FileFormatVersions.Office2007, ApplicationType.All, new IndexReferenceConstraint(2 /*:fillId*/, "/WorkbookPart/WorkbookStylesPart", null, typeof(DocumentFormat.OpenXml.Spreadsheet.Fill), "DocumentFormat.OpenXml.Spreadsheet.Fill", 0));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.CellFormat), FileFormatVersions.Office2007, ApplicationType.All, new IndexReferenceConstraint(1 /*:fontId*/, "/WorkbookPart/WorkbookStylesPart", null, typeof(DocumentFormat.OpenXml.Spreadsheet.Font), "DocumentFormat.OpenXml.Spreadsheet.Font", 0));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.CellFormat), FileFormatVersions.Office2007, ApplicationType.All, new IndexReferenceConstraint(4 /*:xfId*/, "/WorkbookPart/WorkbookStylesPart", typeof(DocumentFormat.OpenXml.Spreadsheet.CellStyleFormats), typeof(DocumentFormat.OpenXml.Spreadsheet.CellFormat), "DocumentFormat.OpenXml.Spreadsheet.CellFormat", 0));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.CellMetadata), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(0 /*:count*/, true, double.NegativeInfinity, true, 2147483647, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.FutureMetadata), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(1 /*:count*/, true, double.NegativeInfinity, true, 2147483647, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.FutureMetadata), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*:name*/, true, typeof(DocumentFormat.OpenXml.Spreadsheet.Metadata)));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.FutureMetadata), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueSetConstraint(0 /*:name*/, false, new string[] { "XLMDX" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.FutureMetadata), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(0 /*:name*/, 1, 65535));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.MdxKpi), FileFormatVersions.Office2007, ApplicationType.All, new IndexReferenceConstraint(0 /*:n*/, ".", typeof(DocumentFormat.OpenXml.Spreadsheet.MetadataStrings), typeof(DocumentFormat.OpenXml.Spreadsheet.CharacterValue), "DocumentFormat.OpenXml.Spreadsheet.CharacterValue", 0));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.MdxKpi), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(0 /*:n*/, true, double.NegativeInfinity, true, 2147483647, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.MdxKpi), FileFormatVersions.Office2007, ApplicationType.All, new IndexReferenceConstraint(1 /*:np*/, "/WorkbookPart/CellMetadataPart", typeof(DocumentFormat.OpenXml.Spreadsheet.MetadataStrings), typeof(DocumentFormat.OpenXml.Spreadsheet.CharacterValue), "DocumentFormat.OpenXml.Spreadsheet.CharacterValue", 0));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.MdxKpi), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(1 /*:np*/, true, double.NegativeInfinity, true, 2147483647, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Mdx), FileFormatVersions.Office2007, ApplicationType.All, new IndexReferenceConstraint(0 /*:n*/, "/WorkbookPart/CellMetadataPart", typeof(DocumentFormat.OpenXml.Spreadsheet.MetadataStrings), typeof(DocumentFormat.OpenXml.Spreadsheet.CharacterValue), "DocumentFormat.OpenXml.Spreadsheet.CharacterValue", 0));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Mdx), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(0 /*:n*/, true, double.NegativeInfinity, true, 2147483647, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.MdxMetadata), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(0 /*:count*/, true, double.NegativeInfinity, true, 2147483647, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.MetadataStrings), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(0 /*:count*/, true, double.NegativeInfinity, true, 2147483647, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.MetadataType), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*:name*/, true, typeof(DocumentFormat.OpenXml.Spreadsheet.MetadataTypes)));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.MetadataType), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(0 /*:name*/, 1, 65535));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.MetadataTypes), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(0 /*:count*/, true, double.NegativeInfinity, true, 2147483647, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.MdxSet), FileFormatVersions.Office2007, ApplicationType.All, new IndexReferenceConstraint(0 /*:ns*/, "/WorkbookPart/CellMetadataPart", typeof(DocumentFormat.OpenXml.Spreadsheet.MetadataStrings), typeof(DocumentFormat.OpenXml.Spreadsheet.CharacterValue), "DocumentFormat.OpenXml.Spreadsheet.CharacterValue", 0));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.MdxSet), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(0 /*:ns*/, true, 0, true, 2147483647, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.MdxSet), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(1 /*:c*/, true, 0, true, 2147483647, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.NameIndex), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(0 /*:x*/, true, 0, true, double.PositiveInfinity, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.NameIndex), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(0 /*:x*/, true, double.NegativeInfinity, true, 2147483647, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.MdxMemberProp), FileFormatVersions.Office2007, ApplicationType.All, new IndexReferenceConstraint(0 /*:n*/, "/WorkbookPart/CellMetadataPart", typeof(DocumentFormat.OpenXml.Spreadsheet.MetadataStrings), typeof(DocumentFormat.OpenXml.Spreadsheet.CharacterValue), "DocumentFormat.OpenXml.Spreadsheet.CharacterValue", 0));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.MdxMemberProp), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(0 /*:n*/, true, double.NegativeInfinity, true, 2147483647, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.MdxMemberProp), FileFormatVersions.Office2007, ApplicationType.All, new IndexReferenceConstraint(1 /*:np*/, "/WorkbookPart/CellMetadataPart", typeof(DocumentFormat.OpenXml.Spreadsheet.MetadataStrings), typeof(DocumentFormat.OpenXml.Spreadsheet.CharacterValue), "DocumentFormat.OpenXml.Spreadsheet.CharacterValue", 0));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.MdxMemberProp), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(1 /*:np*/, true, double.NegativeInfinity, true, 2147483647, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.MdxTuple), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(2 /*:si*/, true, double.NegativeInfinity, true, 2147483647, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.MdxTuple), FileFormatVersions.Office2007, ApplicationType.All, new IndexReferenceConstraint(2 /*:si*/, "/WorkbookPart/CellMetadataPart", typeof(DocumentFormat.OpenXml.Spreadsheet.MetadataStrings), typeof(DocumentFormat.OpenXml.Spreadsheet.CharacterValue), "DocumentFormat.OpenXml.Spreadsheet.CharacterValue", 0));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.MdxTuple), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(0 /*:c*/, true, double.NegativeInfinity, true, 2147483647, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.MdxTuple), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(3 /*:fi*/, true, double.NegativeInfinity, true, 58, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.ValueMetadata), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(0 /*:count*/, true, double.NegativeInfinity, true, 2147483647, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.CacheField), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*:name*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.CacheHierarchy), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(10 /*:allUniqueName*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.CacheHierarchy), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(9 /*:defaultMemberUniqueName*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.CacheHierarchy), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*:uniqueName*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.CacheSource), FileFormatVersions.Office2007, ApplicationType.All, new ReferenceExistConstraint(1 /*:connectionId*/, "/WorkbookPart/ConnectionsPart", typeof(DocumentFormat.OpenXml.Spreadsheet.Connection), "DocumentFormat.OpenXml.Spreadsheet.Connection", 0 /*:id*/));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.CacheSource), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(1 /*:connectionId*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.CalculatedMember), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(0 /*:name*/, 1, 63999));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.CalculatedMember), FileFormatVersions.Office2007, ApplicationType.All, new AttributeAbsentConditionToValue(3 /*:hierarchy*/, 6 /*:set*/ , "1") );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.CalculatedMember), FileFormatVersions.Office2007, ApplicationType.All, new AttributeRequiredConditionToValue(3 /*:hierarchy*/, 6 /*:set*/ , "0") );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.CalculatedMember), FileFormatVersions.Office2007, ApplicationType.All, new AttributeAbsentConditionToValue(4 /*:parent*/, 6 /*:set*/ , "1") );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.CalculatedMember), FileFormatVersions.Office2007, ApplicationType.All, new AttributeAbsentConditionToValue(2 /*:memberName*/, 6 /*:set*/ , "1") );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.CalculatedMember), FileFormatVersions.Office2007, ApplicationType.All, new AttributeRequiredConditionToValue(2 /*:memberName*/, 6 /*:set*/ , "0") );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.ConditionalFormat), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueConditionToAnother(1 /*:type*/, 0 /*:scope*/, new string[] { "none", "all" }, new string[] { "data", "selection" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.DataField), FileFormatVersions.Office2007, ApplicationType.All, new IndexReferenceConstraint(1 /*:fld*/, ".", null, typeof(DocumentFormat.OpenXml.Spreadsheet.PivotField), "DocumentFormat.OpenXml.Spreadsheet.PivotField", 0));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Dimension), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(2 /*:uniqueName*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.ErrorItem), FileFormatVersions.Office2007, ApplicationType.All, new IndexReferenceConstraint(5 /*:in*/, ".", null, typeof(DocumentFormat.OpenXml.Spreadsheet.ServerFormat), "DocumentFormat.OpenXml.Spreadsheet.ServerFormat", 0));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Field), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*:x*/, true, typeof(DocumentFormat.OpenXml.Spreadsheet.ColumnFields)));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.FieldUsage), FileFormatVersions.Office2007, ApplicationType.All, new IndexReferenceConstraint(0 /*:x*/, ".", null, typeof(DocumentFormat.OpenXml.Spreadsheet.CacheField), "DocumentFormat.OpenXml.Spreadsheet.CacheField", 0));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.FieldUsage), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(0 /*:x*/, true, -1, true, double.PositiveInfinity, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.PivotFilter), FileFormatVersions.Office2007, ApplicationType.All, new IndexReferenceConstraint(0 /*:fld*/, ".", null, typeof(DocumentFormat.OpenXml.Spreadsheet.PivotField), "DocumentFormat.OpenXml.Spreadsheet.PivotField", 0));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.PivotFilter), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(4 /*:id*/, false, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.PivotFilter), FileFormatVersions.Office2007, ApplicationType.All, new IndexReferenceConstraint(6 /*:iMeasureFld*/, ".", null, typeof(DocumentFormat.OpenXml.Spreadsheet.PivotField), "DocumentFormat.OpenXml.Spreadsheet.PivotField", 0));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.PivotFilter), FileFormatVersions.Office2007, ApplicationType.All, new IndexReferenceConstraint(5 /*:iMeasureHier*/, ".", null, typeof(DocumentFormat.OpenXml.Spreadsheet.PivotHierarchy), "DocumentFormat.OpenXml.Spreadsheet.PivotHierarchy", 0));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Format), FileFormatVersions.Office2007, ApplicationType.All, new IndexReferenceConstraint(1 /*:dxfId*/, "/WorkbookPart/WorkbookStylesPart", null, typeof(DocumentFormat.OpenXml.Spreadsheet.DifferentialFormat), "DocumentFormat.OpenXml.Spreadsheet.DifferentialFormat", 0));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Group), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(4 /*:id*/, true, typeof(DocumentFormat.OpenXml.Spreadsheet.Groups)));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Group), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(4 /*:id*/, true, 1, true, double.PositiveInfinity, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Group), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(3 /*:uniqueParent*/, 0, 65535));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Group), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(1 /*:uniqueName*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.GroupLevel), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*:uniqueName*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.GroupMember), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*:uniqueName*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.RowItem), FileFormatVersions.Office2007, ApplicationType.All, new IndexReferenceConstraint(2 /*:i*/, ".", null, typeof(DocumentFormat.OpenXml.Spreadsheet.DataField), "DocumentFormat.OpenXml.Spreadsheet.DataField", 0));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Item), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*:n*/, true, typeof(DocumentFormat.OpenXml.Spreadsheet.PivotField)));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Item), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueSetConstraint(1 /*:t*/, false, new string[] { "blank", "grand" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Kpi), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(6 /*:goal*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Kpi), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(7 /*:status*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Kpi), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(8 /*:trend*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Kpi), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*:uniqueName*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Kpi), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(5 /*:value*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Kpi), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(9 /*:weight*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.MissingItem), FileFormatVersions.Office2007, ApplicationType.All, new IndexReferenceConstraint(4 /*:in*/, ".", null, typeof(DocumentFormat.OpenXml.Spreadsheet.ServerFormat), "DocumentFormat.OpenXml.Spreadsheet.ServerFormat", 0));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.MemberProperty), FileFormatVersions.Office2007, ApplicationType.All, new IndexReferenceConstraint(8 /*:field*/, "PivotTableCacheDefinitionPart", null, typeof(DocumentFormat.OpenXml.Spreadsheet.CacheField), "DocumentFormat.OpenXml.Spreadsheet.CacheField", 0));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.MemberPropertiesMap), FileFormatVersions.Office2007, ApplicationType.All, new IndexReferenceConstraint(0 /*:v*/, ".", null, typeof(DocumentFormat.OpenXml.Spreadsheet.CacheField), "DocumentFormat.OpenXml.Spreadsheet.CacheField", 0));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.NumberItem), FileFormatVersions.Office2007, ApplicationType.All, new IndexReferenceConstraint(5 /*:in*/, ".", null, typeof(DocumentFormat.OpenXml.Spreadsheet.ServerFormat), "DocumentFormat.OpenXml.Spreadsheet.ServerFormat", 0));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.PageField), FileFormatVersions.Office2007, ApplicationType.All, new IndexReferenceConstraint(0 /*:fld*/, "PivotTableCacheDefinitionPart", null, typeof(DocumentFormat.OpenXml.Spreadsheet.CacheField), "DocumentFormat.OpenXml.Spreadsheet.CacheField", 0));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.PageField), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(3 /*:name*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.PivotCacheDefinition), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(6 /*:refreshedBy*/, 0, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.PivotField), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueSetConstraint(1 /*:axis*/, false, new string[] { "axisValues" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.PivotHierarchy), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(10 /*:caption*/, 0, 65535));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.PivotTableDefinition), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(4 /*:autoFormatId*/, true, 0, true, 16, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.PivotTableDefinition), FileFormatVersions.Office2007, ApplicationType.All, new ReferenceExistConstraint(1 /*:cacheId*/, "/WorkbookPart", typeof(DocumentFormat.OpenXml.Spreadsheet.PivotCache), "DocumentFormat.OpenXml.Spreadsheet.PivotCache", 0 /*:cacheId*/));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.PivotTableDefinition), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(50 /*:indent*/, true, double.NegativeInfinity, true, 127, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.PivotTableDefinition), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(40 /*:pageWrap*/, true, double.NegativeInfinity, true, 255, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Query), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(0 /*:mdx*/, 0, 65535));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.RangeProperties), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLessEqualToAnother(3 /*:startNum*/, 4 /*:endNum*/, false) );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.RangeSet), FileFormatVersions.Office2007, ApplicationType.All, new AttributeMutualExclusive(5, 4) /*:name, :ref*/ );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.RangeSet), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(6 /*:sheet*/, 1, 31));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.StringItem), FileFormatVersions.Office2007, ApplicationType.All, new IndexReferenceConstraint(5 /*:in*/, ".", null, typeof(DocumentFormat.OpenXml.Spreadsheet.ServerFormat), "DocumentFormat.OpenXml.Spreadsheet.ServerFormat", 0));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.ServerFormat), FileFormatVersions.Office2007, ApplicationType.All, new AttributeMutualExclusive(0, 1) /*:culture, :format*/ );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.ServerFormat), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(0 /*:culture*/, 0, 31));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.ServerFormat), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(1 /*:format*/, 0, 65535));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.SharedItems), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueSetConstraint(9 /*:maxValue*/, false, new string[] { "NaN", "INF", "-INF" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.SharedItems), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueSetConstraint(8 /*:minValue*/, false, new string[] { "NaN", "INF", "-INF" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.SharedItems), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLessEqualToAnother(8 /*:minValue*/, 9 /*:maxValue*/, true) );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Tuple), FileFormatVersions.Office2007, ApplicationType.All, new IndexReferenceConstraint(0 /*:fld*/, ".", null, typeof(DocumentFormat.OpenXml.Spreadsheet.CacheField), "DocumentFormat.OpenXml.Spreadsheet.CacheField", 0));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Tuple), FileFormatVersions.Office2007, ApplicationType.All, new IndexReferenceConstraint(1 /*:hier*/, ".", null, typeof(DocumentFormat.OpenXml.Spreadsheet.CacheHierarchy), "DocumentFormat.OpenXml.Spreadsheet.CacheHierarchy", 0));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.WorksheetSource), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(1 /*:name*/, 1, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.WorksheetSource), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(2 /*:sheet*/, 0, 31));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Headers), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(8 /*:version*/, true, 1, true, 2147483647, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Headers), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(11 /*:preserveHistory*/, true, 0, true, 32768, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Headers), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(7 /*:revisionId*/, true, double.NegativeInfinity, true, 2147483647, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Headers), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueSetConstraint(0 /*:guid*/, false, new string[] { "00000000-0000-0000-0000-000000000000" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.OldCell), FileFormatVersions.Office2007, ApplicationType.All, new IndexReferenceConstraint(3 /*:cm*/, "/WorkbookPart/CellMetadataPart", null, typeof(DocumentFormat.OpenXml.Spreadsheet.CellMetadata), "DocumentFormat.OpenXml.Spreadsheet.CellMetadata", 0));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.OldCell), FileFormatVersions.Office2007, ApplicationType.All, new IndexReferenceConstraint(1 /*:s*/, "/WorkbookPart/WorkbookStylesPart", null, typeof(DocumentFormat.OpenXml.Spreadsheet.CellStyle), "DocumentFormat.OpenXml.Spreadsheet.CellStyle", 0));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.OldCell), FileFormatVersions.Office2007, ApplicationType.All, new IndexReferenceConstraint(4 /*:vm*/, "/WorkbookPart/CellMetadataPart", null, typeof(DocumentFormat.OpenXml.Spreadsheet.ValueMetadata), "DocumentFormat.OpenXml.Spreadsheet.ValueMetadata", 0));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.RevisionAutoFormat), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(1 /*:autoFormatId*/, true, 0, true, 16, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.RevisionConflict), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(3 /*:sheetId*/, true, 0, true, 32767, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.RevisionComment), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(8 /*:author*/, 1, 52));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.RevisionDefinedName), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(8 /*:functionGroupId*/, true, 1, true, 14, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.RevisionDefinedName), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(3 /*:localSheetId*/, true, double.NegativeInfinity, true, 32767, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.RevisionDefinedName), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(14 /*:customMenu*/, 0, 32767));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.RevisionDefinedName), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(15 /*:oldCustomMenu*/, 0, 32767));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.RevisionDefinedName), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(16 /*:description*/, 0, 32767));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.RevisionDefinedName), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(17 /*:oldDescription*/, 0, 32767));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.RevisionDefinedName), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(18 /*:help*/, 0, 32767));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.RevisionDefinedName), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(19 /*:oldHelp*/, 0, 32767));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.RevisionDefinedName), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(20 /*:statusBar*/, 0, 32767));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.RevisionDefinedName), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(21 /*:oldStatusBar*/, 0, 32767));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.RevisionDefinedName), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(5 /*:name*/, true, typeof(DocumentFormat.OpenXml.Spreadsheet.Revisions)));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.RevisionDefinedName), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValuePatternConstraint(5 /*:name*/, @"[a-zA-Z_\\][a-zA-Z0-9_.]*"));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Reviewed), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(0 /*:rId*/, true, double.NegativeInfinity, true, 2147483647, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.RevisionFormat), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(0 /*:sheetId*/, true, 0, true, 32767, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.RevisionMove), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(3 /*:sheetId*/, true, double.NegativeInfinity, true, 32767, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.RevisionMove), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(6 /*:sourceSheetId*/, true, double.NegativeInfinity, true, 32767, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.RevisionRowColumn), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(3 /*:sId*/, 0, 32767));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.RevisionSheetName), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(3 /*:sheetId*/, 0, 32767));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.SheetId), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(0 /*:val*/, true, double.NegativeInfinity, true, 65535, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Undo), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(10 /*:sId*/, true, double.NegativeInfinity, true, 32767, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Undo), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueConditionToAnother(2 /*:ref3D*/, 5 /*:nf*/, new string[] { "false" }, new string[] { "true" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Undo), FileFormatVersions.Office2007, ApplicationType.All, new AttributeMutualExclusive(8, 9) /*:dn, :r*/ );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.QueryTable), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueConditionToAnother(4 /*:backgroundRefresh*/, 5 /*:firstBackgroundRefresh*/, new string[] { "true" }, new string[] { "true" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.QueryTable), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(14 /*:connectionId*/, true, 1, true, double.PositiveInfinity, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.QueryTable), FileFormatVersions.Office2007, ApplicationType.All, new ReferenceExistConstraint(14 /*:connectionId*/, "/WorkbookPart/ConnectionsPart", typeof(DocumentFormat.OpenXml.Spreadsheet.Connection), "DocumentFormat.OpenXml.Spreadsheet.Connection", 0 /*:id*/));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.QueryTable), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(0 /*:name*/, 1, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.QueryTableField), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.QueryTableField), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(1 /*:name*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.QueryTableField), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(1 /*:name*/, 0, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.QueryTableField), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueConditionToAnother(2 /*:dataBound*/, 5 /*:clipped*/, new string[] { "true" }, new string[] { "true" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.QueryTableField), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueConditionToAnother(2 /*:dataBound*/, 4 /*:fillFormulas*/, new string[] { "false" }, new string[] { "true" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.QueryTableField), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueConditionToAnother(2 /*:dataBound*/, 3 /*:rowNumbers*/, new string[] { "true" }, new string[] { "true" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.QueryTableRefresh), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(5 /*:unboundColumnsLeft*/, true, double.NegativeInfinity, true, 16383, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.QueryTableRefresh), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(6 /*:unboundColumnsRight*/, true, double.NegativeInfinity, true, 16383, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.QueryTableRefresh), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(4 /*:nextId*/, true, double.NegativeInfinity, true, 65535, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.QueryTableRefresh), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(3 /*:minimumVersion*/, true, 0, true, 31, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Connection), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.DatabaseProperties), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(3 /*:commandType*/, true, 1, true, 5, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.OlapProperties), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(4 /*:rowDrillCount*/, true, 1, true, 1048576, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Parameter), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(0 /*:name*/, 0, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Parameter), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueSetConstraint(1 /*:sqlType*/, true, new string[] { "-22", "-20", "-11", "-10", "-9", "-8", "-7", "-6", "-5", "-4", "-3", "-2", "-1", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "101", "102", "103", "104", "105", "106", "107", "108", "109", "110", "111", "112", "113" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Parameter), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(8 /*:string*/, 0, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Parameter), FileFormatVersions.Office2007, ApplicationType.All, new AttributeRequiredConditionToValue(9 /*:cell*/, 2 /*:parameterType*/ , "cell") );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Parameter), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(4 /*:prompt*/, 0, 65535));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.TextField), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(1 /*:position*/, true, 0, true, 2147483647, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.TextProperties), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(7 /*:decimal*/, 1, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.TextProperties), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(8 /*:thousands*/, 1, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.ExternalCell), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueSetConstraint(1 /*:t*/, false, new string[] { "s" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.ExternalCell), FileFormatVersions.Office2007, ApplicationType.All, new IndexReferenceConstraint(2 /*:vm*/, "/WorkbookPart/CellMetadataPart", null, typeof(DocumentFormat.OpenXml.Spreadsheet.ValueMetadata), "DocumentFormat.OpenXml.Spreadsheet.ValueMetadata", 0));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.DdeItem), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(0 /*:name*/, 0, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.DdeItem), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueConditionToAnother(0 /*:name*/, 1 /*:ole*/, new string[] { "StdDocumentName" }, new string[] { "true" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.DdeLink), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(0 /*:ddeService*/, 1, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.DdeLink), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(1 /*:ddeTopic*/, 0, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.ExternalDefinedName), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(2 /*:sheetId*/, true, 0, true, 65533, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.OleItem), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(0 /*:name*/, 0, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.OleLink), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(1 /*:progId*/, 1, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.ExternalRow), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(0 /*:r*/, true, double.NegativeInfinity, true, 1048576, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.WebQueryProperties), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(8 /*:url*/, 1, int.MaxValue));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.SheetName), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(0 /*:val*/, 0, 31));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.DataBinding), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(4 /*:DataBindingLoadMode*/, true, 0, true, 4, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.DataBinding), FileFormatVersions.Office2007, ApplicationType.All, new AttributeAbsentConditionToValue(2 /*:ConnectionID*/, 1 /*:FileBinding*/ , "false") );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.DataBinding), FileFormatVersions.Office2007, ApplicationType.All, new AttributeRequiredConditionToValue(2 /*:ConnectionID*/, 1 /*:FileBinding*/ , "true") );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Map), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(3 /*:SchemaID*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Map), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(1 /*:Name*/, 0, 65535));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Map), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(2 /*:RootElement*/, 0, 65535));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Map), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(0 /*:ID*/, true, 1, true, 2147483647, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Schema), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*:ID*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Presentation.SlideRange), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLessEqualToAnother(0 /*:st*/, 1 /*:end*/, true) );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Presentation.SlideMasterId), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*:id*/, false, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Presentation.SlideLayoutId), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Presentation.CommentAuthor), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*:id*/, false, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Presentation.CommentAuthor), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(0 /*:id*/, true, 0, true, double.PositiveInfinity, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Presentation.CommentAuthor), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(4 /*:clrIdx*/, true, typeof(DocumentFormat.OpenXml.Presentation.CommentAuthorList)));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.HyperlinkOnHover), FileFormatVersions.Office2007, ApplicationType.All, new AttributeCannotOmitConstraint(0 /*r:id*/));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.Luminance), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(0 /*:val*/, true, 0, true, 100000, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.TableStyleEntry), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*:styleId*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.HyperlinkOnClick), FileFormatVersions.Office2007, ApplicationType.All, new AttributeCannotOmitConstraint(0 /*r:id*/));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.HyperlinkOnMouseOver), FileFormatVersions.Office2007, ApplicationType.All, new AttributeCannotOmitConstraint(0 /*r:id*/));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.TableStyle), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*:styleId*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.TableCell), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(0 /*:rowSpan*/, true, 1, true, double.PositiveInfinity, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.TableCell), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(1 /*:gridSpan*/, true, 1, true, double.PositiveInfinity, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.DashStop), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(0 /*:d*/, true, 1, true, double.PositiveInfinity, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.DashStop), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(1 /*:sp*/, true, 1, true, double.PositiveInfinity, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.LegacyCompatibility.LegacyDrawing), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*:spid*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.Spreadsheet.ConnectionShape), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(0 /*:macro*/, 0, 256));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.Spreadsheet.GraphicFrame), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(0 /*:macro*/, 0, 256));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.Spreadsheet.Shape), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(0 /*:macro*/, 0, 256));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.Charts.AxisId), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(0 /*:val*/, true, double.NegativeInfinity, true, 2147483647, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.Charts.Backward), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(0 /*:val*/, true, 0, true, double.PositiveInfinity, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.Charts.CrossesAt), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueSetConstraint(0 /*:val*/, false, new string[] { "INF", "-INF", "NaN" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.Charts.CrossingAxis), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(0 /*:val*/, true, double.NegativeInfinity, true, 2147483647, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.Charts.CustomDisplayUnit), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueSetConstraint(0 /*:val*/, false, new string[] { "INF", "-INF", "NaN" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.Charts.Explosion), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(0 /*:val*/, true, double.NegativeInfinity, true, 2147483647, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.Charts.FormatId), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(0 /*:val*/, true, double.NegativeInfinity, true, 2147483647, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.Charts.Forward), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueSetConstraint(0 /*:val*/, false, new string[] { "INF", "-INF", "NaN" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.Charts.Forward), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(0 /*:val*/, true, 0, true, double.PositiveInfinity, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.Charts.Index), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(0 /*:val*/, true, double.NegativeInfinity, true, 2147483647, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.Charts.Order), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(0 /*:val*/, true, double.NegativeInfinity, true, 2147483647, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.Charts.PageMargins), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(3 /*:b*/, true, 0, true, 49, false));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.Charts.PageMargins), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(5 /*:footer*/, true, 0, true, 49, false));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.Charts.PageMargins), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(4 /*:header*/, true, 0, true, 49, false));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.Charts.PageMargins), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(0 /*:l*/, true, 0, true, 49, false));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.Charts.PageMargins), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(1 /*:r*/, true, 0, true, 49, false));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.Charts.PageMargins), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(2 /*:t*/, true, 0, true, 49, false));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.Charts.PageSetup), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(8 /*:copies*/, true, double.NegativeInfinity, true, 2147483647, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.Charts.NumericPoint), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(0 /*:idx*/, true, double.NegativeInfinity, true, 2147483647, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.Charts.StringPoint), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(0 /*:idx*/, true, 0, true, 2147483647, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.Charts.PointCount), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(0 /*:val*/, true, double.NegativeInfinity, true, 2147483647, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.Charts.SecondPiePoint), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(0 /*:val*/, true, double.NegativeInfinity, true, 2147483647, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.Charts.SplitPosition), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueSetConstraint(0 /*:val*/, false, new string[] { "INF", "-INF", "NaN" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.ChartDrawing.ConnectionShape), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(0 /*:macro*/, 0, 256));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.ChartDrawing.GraphicFrame), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(0 /*:macro*/, 0, 256));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.ChartDrawing.Picture), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(0 /*:macro*/, 0, 256));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.ChartDrawing.Shape), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(0 /*:macro*/, 0, 256));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.Diagrams.Choose), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*:name*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.Diagrams.DiagramChooseElse), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*:name*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.Diagrams.ForEach), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*:name*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.Diagrams.DiagramChooseIf), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*:name*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.Diagrams.LayoutNode), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*:name*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.Diagrams.Connection), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*:modelId*/, true, typeof(DocumentFormat.OpenXml.Drawing.Diagrams.ConnectionList)));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.Diagrams.Connection), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(6 /*:parTransId*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.Diagrams.ColorsDefinition), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueSetConstraint(1 /*:minVer*/, true, new string[] { "12.0" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.Arc), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(40 /*:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.Background), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.Curve), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueSetConstraint(40 /*ovml:spt*/, true, new string[] { "0" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.Curve), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.Fill), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValuePatternConstraint(16 /*:focus*/, @"-?(\d{1,2}|100)%"));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.Fill), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*:id*/, false, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.Fill), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(14 /*:angle*/, true, -32767, true, 32767, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.Fill), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(10 /*:origin*/, true, -32767, true, 32767, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.Fill), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueSetConstraint(21 /*ovml:title*/, false, new string[] { "slashes", "colons" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.Group), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueSetConstraint(26 /*ovml:dgmlayout*/, true, new string[] { "0", "1", "2", "3" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.Group), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueSetConstraint(28 /*ovml:dgmlayoutmru*/, true, new string[] { "0", "1", "2", "3" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.Group), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.ImageFile), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueSetConstraint(29 /*ovml:dgmlayout*/, true, new string[] { "0", "1", "2", "3" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.ImageFile), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueSetConstraint(31 /*ovml:dgmlayoutmru*/, true, new string[] { "0", "1", "2", "3" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.ImageFile), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.ImageFile), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueSetConstraint(39 /*ovml:spt*/, true, new string[] { "75" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.ImageData), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*:id*/, false, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.ImageData), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(7 /*:blacklevel*/, true, -0.5, true, 0.5, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.Line), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueSetConstraint(30 /*ovml:dgmlayout*/, true, new string[] { "0", "1", "2", "3" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.Line), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueSetConstraint(40 /*ovml:spt*/, true, new string[] { "20" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.Oval), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueSetConstraint(30 /*ovml:dgmlayout*/, true, new string[] { "0", "1", "2", "3" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.Oval), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueSetConstraint(32 /*ovml:dgmlayoutmru*/, true, new string[] { "0", "1", "2", "3" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.Oval), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.Oval), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueSetConstraint(40 /*ovml:spt*/, true, new string[] { "3" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.Path), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.PolyLine), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueSetConstraint(30 /*ovml:dgmlayout*/, true, new string[] { "0", "1", "2", "3" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.PolyLine), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueSetConstraint(32 /*ovml:dgmlayoutmru*/, true, new string[] { "0", "1", "2", "3" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.PolyLine), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueSetConstraint(40 /*ovml:spt*/, true, new string[] { "0" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.Rectangle), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueSetConstraint(30 /*ovml:dgmlayout*/, true, new string[] { "0", "1", "2", "3" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.Rectangle), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueSetConstraint(32 /*ovml:dgmlayoutmru*/, true, new string[] { "0", "1", "2", "3" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.Rectangle), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.Rectangle), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueSetConstraint(40 /*ovml:spt*/, true, new string[] { "1" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.RoundRectangle), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueSetConstraint(29 /*ovml:dgmlayout*/, true, new string[] { "0", "1", "2", "3" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.RoundRectangle), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueSetConstraint(31 /*ovml:dgmlayoutmru*/, true, new string[] { "0", "1", "2", "3" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.RoundRectangle), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.RoundRectangle), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueSetConstraint(39 /*ovml:spt*/, true, new string[] { "2" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.Shadow), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.Shape), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueSetConstraint(30 /*ovml:dgmlayout*/, true, new string[] { "0", "1", "2", "3" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.Shape), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueSetConstraint(32 /*ovml:dgmlayoutmru*/, true, new string[] { "0", "1", "2", "3" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.Shape), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.Shapetype), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueSetConstraint(30 /*ovml:dgmlayout*/, true, new string[] { "0", "1", "2", "3" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.Shapetype), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueSetConstraint(32 /*ovml:dgmlayoutmru*/, true, new string[] { "0", "1", "2", "3" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.Shapetype), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.Stroke), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*:id*/, false, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.Stroke), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(6 /*:miterlimit*/, true, double.NegativeInfinity, true, 32767, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.Stroke), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(2 /*:weight*/, true, 0, true, 20116800, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.TextBox), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.TextPath), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.Office.BottomStroke), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(2 /*:weight*/, true, 0, true, 20116800, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.Office.BottomStroke), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(7 /*:miterlimit*/, true, double.NegativeInfinity, true, 32767, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.Office.Callout), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueSetConstraint(2 /*:type*/, true, new string[] { "rightAngle", "oneSegment", "twoSegment", "threeSegment" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.Office.ColumnStroke), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueSetConstraint(10 /*:dashstyle*/, true, new string[] { "solid", "shortdash", "shortdot", "shortdashdot", "shortdashdotdot", "dot", "dash", "longdash", "longdashdotdot", "dashdot" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.Office.Extrusion), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(22 /*:facet*/, true, 1, true, 65536, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.Office.Extrusion), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValuePatternConstraint(21 /*:edge*/, @"(\d{1,5}|1[0-6][0-8]\d{3}|1690[0-8]\d|16909[0-3])pt"));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.Office.Extrusion), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(11 /*:orientationangle*/, true, -32767, true, 32767, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.Office.Extrusion), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(6 /*:skewangle*/, true, -32767, true, 32767, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.Office.OleObject), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValuePatternConstraint(4 /*:ObjectID*/, @"_(\d{1,9}|1\d{9}|20\d{8}|21[0-3]\d{7}|214[0-6]\d{6}|2147[0-3]\d{5}|21474[0-7]\d{4}|214748[0-2]\d{3}|2147483[0-5]\d{2}|21474836[0-3]\d|214748364[0-7])"));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.Office.OleObject), FileFormatVersions.Office2007, ApplicationType.All, new ReferenceExistConstraint(2 /*:ShapeID*/, ".", typeof(DocumentFormat.OpenXml.Vml.Shape), "DocumentFormat.OpenXml.Vml.Shape", 0 /*:id*/));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.Office.SignatureLine), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(2 /*:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.CustomProperties.CustomDocumentProperty), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(1 /*:pid*/, true, 2, true, double.PositiveInfinity, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.CustomProperties.CustomDocumentProperty), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(2 /*:name*/, false, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.VariantTypes.VTVStreamData), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*:version*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.AbstractNum), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*w:abstractNumId*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.NumberingInstance), FileFormatVersions.Office2007, ApplicationType.Word, new AttributeValueLengthConstraint(0 /*w:numId*/, 0, 32));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.NumberingPictureBullet), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*w:numPicBulletId*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.ParagraphStyleId), FileFormatVersions.Office2007, ApplicationType.Word, new AttributeValueLengthConstraint(0 /*w:val*/, 0, 253));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.FooterReference), FileFormatVersions.Office2007, ApplicationType.All, new RelationshipTypeConstraint(1 /*r:id*/, "http://schemas.openxmlformats.org/officeDocument/2006/relationships/footer"));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.HeaderReference), FileFormatVersions.Office2007, ApplicationType.All, new RelationshipTypeConstraint(1 /*r:id*/, "http://schemas.openxmlformats.org/officeDocument/2006/relationships/header"));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.EndnoteSpecialReference), FileFormatVersions.Office2007, ApplicationType.All, new ReferenceExistConstraint(0 /*w:id*/, "/MainDocumentPart/EndnotesPart", typeof(DocumentFormat.OpenXml.Wordprocessing.Endnote), "DocumentFormat.OpenXml.Wordprocessing.Endnote", 1 /*w:id*/));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.FootnoteSpecialReference), FileFormatVersions.Office2007, ApplicationType.All, new ReferenceExistConstraint(0 /*w:id*/, "/MainDocumentPart/FootnotesPart", typeof(DocumentFormat.OpenXml.Wordprocessing.Footnote), "DocumentFormat.OpenXml.Wordprocessing.Footnote", 1 /*w:id*/));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.DocPartId), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*w:val*/, false, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.Comment), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(3 /*w:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.CommentRangeEnd), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(1 /*w:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.CommentRangeEnd), FileFormatVersions.Office2007, ApplicationType.All, new ReferenceExistConstraint(1 /*w:id*/, "WordprocessingCommentsPart", typeof(DocumentFormat.OpenXml.Wordprocessing.Comment), "DocumentFormat.OpenXml.Wordprocessing.Comment", 3 /*w:id*/));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.CommentRangeStart), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(1 /*w:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.CommentRangeStart), FileFormatVersions.Office2007, ApplicationType.All, new ReferenceExistConstraint(1 /*w:id*/, "WordprocessingCommentsPart", typeof(DocumentFormat.OpenXml.Wordprocessing.Comment), "DocumentFormat.OpenXml.Wordprocessing.Comment", 3 /*w:id*/));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.CommentReference), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*w:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.CommentReference), FileFormatVersions.Office2007, ApplicationType.All, new ReferenceExistConstraint(0 /*w:id*/, "WordprocessingCommentsPart", typeof(DocumentFormat.OpenXml.Wordprocessing.Comment), "DocumentFormat.OpenXml.Wordprocessing.Comment", 3 /*w:id*/));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.CellDeletion), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(2 /*w:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.CellInsertion), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(2 /*w:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.CellMerge), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(4 /*w:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.CustomXmlDelRangeEnd), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*w:id*/, false, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.CustomXmlDelRangeStart), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(2 /*w:id*/, false, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.CustomXmlInsRangeEnd), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*w:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.CustomXmlInsRangeStart), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(2 /*w:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.CustomXmlMoveFromRangeEnd), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*w:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.CustomXmlMoveFromRangeStart), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(2 /*w:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.CustomXmlMoveToRangeStart), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(2 /*w:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.MoveFromRun), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(2 /*w:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.MoveFromRangeEnd), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(1 /*w:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.MoveFromRangeStart), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(6 /*w:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.MoveToRun), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(2 /*w:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.MoveToRangeEnd), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(1 /*w:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.MoveToRangeStart), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(6 /*w:id*/, false, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.NumberingChange), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(3 /*w:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.NumberingChange), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(0 /*w:original*/, 0, 15));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.ParagraphPropertiesChange), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(2 /*w:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.SectionPropertiesChange), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(2 /*w:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.TableGridChange), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*w:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.TablePropertiesChange), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(2 /*w:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.TablePropertyExceptionsChange), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(2 /*w:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.TableCellPropertiesChange), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(2 /*w:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.TableRowPropertiesChange), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(2 /*w:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.BookmarkEnd), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(1 /*w:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.BookmarkStart), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(4 /*w:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.PermEnd), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*w:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.PermStart), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(4 /*w:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.DataSourceReference), FileFormatVersions.Office2007, ApplicationType.All, new RelationshipTypeConstraint(0 /*r:id*/, "http://schemas.openxmlformats.org/officeDocument/2006/relationships/mailMergeSource"));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.RecipientDataReference), FileFormatVersions.Office2007, ApplicationType.All, new RelationshipTypeConstraint(0 /*r:id*/, "http://schemas.openxmlformats.org/officeDocument/2006/relationships/recipientData"));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.SourceReference), FileFormatVersions.Office2007, ApplicationType.All, new RelationshipTypeConstraint(0 /*r:id*/, "http://schemas.openxmlformats.org/officeDocument/2006/relationships/mailMergeSource"));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.AttachedTemplate), FileFormatVersions.Office2007, ApplicationType.All, new RelationshipTypeConstraint(0 /*r:id*/, "http://schemas.openxmlformats.org/officeDocument/2006/relationships/attachedTemplate"));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.AutoCaption), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*w:name*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.DocumentProtection), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueSetConstraint(6 /*w:cryptAlgorithmSid*/, true, new string[] { "1", "2", "3", "4", "12", "13", "14" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.SaveThroughXslt), FileFormatVersions.Office2007, ApplicationType.All, new RelationshipTypeConstraint(0 /*r:id*/, "http://schemas.openxmlformats.org/officeDocument/2006/relationships/transform"));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.StylePaneFormatFilter), FileFormatVersions.Office2007, ApplicationType.Word, new AttributeValueSetConstraint(0 /*w:val*/, false, new string[] { "0x0040", "0x0080", "0x0800" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.Div), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*w:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.SourceFileReference), FileFormatVersions.Office2007, ApplicationType.All, new RelationshipTypeConstraint(0 /*r:id*/, "http://schemas.openxmlformats.org/officeDocument/2006/relationships/frame"));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.SubDocumentReference), FileFormatVersions.Office2007, ApplicationType.All, new RelationshipTypeConstraint(0 /*r:id*/, "http://schemas.openxmlformats.org/officeDocument/2006/relationships/subDocument"));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.OutlineLevel), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueRangeConstraint(0 /*w:val*/, true, 0, true, 9, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.Control), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*w:name*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.BottomMargin), FileFormatVersions.Office2007, ApplicationType.Word, new AttributeCannotOmitConstraint(1 /*w:type*/));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.BottomMargin), FileFormatVersions.Office2007, ApplicationType.Word, new AttributeCannotOmitConstraint(0 /*w:w*/));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.DivId), FileFormatVersions.Office2007, ApplicationType.Word, new AttributeValueSetConstraint(0 /*w:val*/, false, new string[] { "0" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.PrinterSettingsReference), FileFormatVersions.Office2007, ApplicationType.All, new RelationshipTypeConstraint(0 /*r:id*/, "http://schemas.openxmlformats.org/officeDocument/2006/relationships/printerSettings"));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.Name), FileFormatVersions.Office2007, ApplicationType.Word, new AttributeValuePatternConstraint(0 /*w:val*/, @"[^,]*"));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.Style), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(1 /*w:styleId*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.EmbedBoldItalicFont), FileFormatVersions.Office2007, ApplicationType.All, new RelationshipTypeConstraint(2 /*r:id*/, "http://schemas.openxmlformats.org/officeDocument/2006/relationships/font"));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.EmbedItalicFont), FileFormatVersions.Office2007, ApplicationType.All, new RelationshipTypeConstraint(2 /*r:id*/, "http://schemas.openxmlformats.org/officeDocument/2006/relationships/font"));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.EmbedRegularFont), FileFormatVersions.Office2007, ApplicationType.All, new RelationshipTypeConstraint(2 /*r:id*/, "http://schemas.openxmlformats.org/officeDocument/2006/relationships/font"));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.CustomXmlSchemaReferences.Schema), FileFormatVersions.Office2007, ApplicationType.Word, new AttributeValueLengthConstraint(1 /*sl:manifestLocation*/, 0, 2083));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.CustomXmlSchemaReferences.Schema), FileFormatVersions.Office2007, ApplicationType.Word, new AttributeValueLengthConstraint(2 /*sl:schemaLocation*/, 0, 2083));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.CustomXmlSchemaReferences.Schema), FileFormatVersions.Office2007, ApplicationType.Word, new AttributeValueLengthConstraint(0 /*sl:uri*/, 0, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.OleItem), FileFormatVersions.Office2007, ApplicationType.All, new AttributeValueLengthConstraint(0 /*:name*/, 1, int.MaxValue));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Presentation.ModificationVerifier), FileFormatVersions.Office2007, ApplicationType.Word | ApplicationType.Excel, new AttributeValueSetConstraint(3 /*:cryptAlgorithmSid*/, true, new string[] { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Undo), FileFormatVersions.Office2007, ApplicationType.All, new AttributeMutualExclusive(8, 10) /*:dn, :sId*/ );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.Deleted), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(2 /*w:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.DeletedMathControl), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(2 /*w:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.DeletedRun), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(2 /*w:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.Inserted), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(2 /*w:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.InsertedMathControl), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(2 /*w:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.InsertedRun), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(2 /*w:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.RunPropertiesChange), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(2 /*w:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.ParagraphMarkRunPropertiesChange), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(2 /*w:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Presentation.SlideId), FileFormatVersions.Office2007, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*:id*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Presentation.SlideLayoutId), FileFormatVersions.Office2007, ApplicationType.All, new RelationshipExistConstraint(1 /*r:id*/) );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Presentation.SlideId), FileFormatVersions.Office2007, ApplicationType.All, new RelationshipExistConstraint(1 /*r:id*/) );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Sheet), FileFormatVersions.Office2007, ApplicationType.All, new RelationshipExistConstraint(3 /*r:id*/) );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Presentation.SlideMasterId), FileFormatVersions.Office2007, ApplicationType.All, new RelationshipExistConstraint(1 /*r:id*/) );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.Stroke), FileFormatVersions.Office2007, ApplicationType.All, new RelationshipExistConstraint(26 /*r:id*/) );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.HyperlinkOnClick), FileFormatVersions.Office2007, ApplicationType.All, new RelationshipExistConstraint(0 /*r:id*/) );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.Charts.ChartReference), FileFormatVersions.Office2007, ApplicationType.All, new RelationshipExistConstraint(0 /*r:id*/) );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Hyperlink), FileFormatVersions.Office2007, ApplicationType.All, new RelationshipExistConstraint(1 /*r:id*/) );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Drawing), FileFormatVersions.Office2007, ApplicationType.All, new RelationshipExistConstraint(0 /*r:id*/) );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.AttachedTemplate), FileFormatVersions.Office2007, ApplicationType.All, new RelationshipExistConstraint(0 /*r:id*/) );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.Fill), FileFormatVersions.Office2007, ApplicationType.All, new RelationshipExistConstraint(25 /*r:id*/) );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Presentation.OleObject), FileFormatVersions.Office2007, ApplicationType.All, new RelationshipExistConstraint(3 /*r:id*/) );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.Charts.ExternalData), FileFormatVersions.Office2007, ApplicationType.All, new RelationshipExistConstraint(0 /*r:id*/) );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.PivotCache), FileFormatVersions.Office2007, ApplicationType.All, new RelationshipExistConstraint(1 /*r:id*/) );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Presentation.NotesMasterId), FileFormatVersions.Office2007, ApplicationType.All, new RelationshipExistConstraint(0 /*r:id*/) );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.ImageData), FileFormatVersions.Office2007, ApplicationType.All, new RelationshipExistConstraint(16 /*r:id*/) );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.FooterReference), FileFormatVersions.Office2007, ApplicationType.All, new RelationshipExistConstraint(1 /*r:id*/) );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.HeaderReference), FileFormatVersions.Office2007, ApplicationType.All, new RelationshipExistConstraint(1 /*r:id*/) );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.HyperlinkRuby), FileFormatVersions.Office2007, ApplicationType.All, new RelationshipExistConstraint(5 /*r:id*/) );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.Hyperlink), FileFormatVersions.Office2007, ApplicationType.All, new RelationshipExistConstraint(5 /*r:id*/) );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Presentation.HandoutMasterId), FileFormatVersions.Office2007, ApplicationType.All, new RelationshipExistConstraint(0 /*r:id*/) );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.LegacyDrawing), FileFormatVersions.Office2007, ApplicationType.All, new RelationshipExistConstraint(0 /*r:id*/) );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.EmbedRegularFont), FileFormatVersions.Office2007, ApplicationType.All, new RelationshipExistConstraint(2 /*r:id*/) );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Presentation.SlideListEntry), FileFormatVersions.Office2007, ApplicationType.All, new RelationshipExistConstraint(0 /*r:id*/) );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.HyperlinkOnMouseOver), FileFormatVersions.Office2007, ApplicationType.All, new RelationshipExistConstraint(0 /*r:id*/) );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.WorksheetSource), FileFormatVersions.Office2007, ApplicationType.All, new RelationshipExistConstraint(3 /*r:id*/) );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.Diagrams.Shape), FileFormatVersions.Office2007, ApplicationType.All, new RelationshipExistConstraint(2 /*r:blip*/) );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.Blip), FileFormatVersions.Office2007, ApplicationType.All, new RelationshipExistConstraint(0 /*r:embed*/) );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.Blip), FileFormatVersions.Office2007, ApplicationType.All, new RelationshipExistConstraint(1 /*r:link*/) );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.Diagrams.RelationshipIds), FileFormatVersions.Office2007, ApplicationType.All, new RelationshipExistConstraint(0 /*r:dm*/) );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.ImageData), FileFormatVersions.Office2007, ApplicationType.All, new RelationshipExistConstraint(18 /*r:href*/) );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.AltChunk), FileFormatVersions.Office2007, ApplicationType.All, new RelationshipExistConstraint(0 /*r:id*/) );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.CustomWorkbookView), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueSetConstraint(1 /*:guid*/, false, new string[] { "00000000-0000-0000-0000-000000000000" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.CustomWorkbookView), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueRangeConstraint(17 /*:windowHeight*/, true, double.NegativeInfinity, true, 2147483647, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.DefinedName), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(1 /*:comment*/, 0, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.DefinedName), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(0 /*:name*/, 1, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.DefinedName), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueRangeConstraint(6 /*:localSheetId*/, true, double.NegativeInfinity, true, 32766, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.FunctionGroup), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(0 /*:name*/, 0, 32));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.WebPublishObject), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(4 /*:title*/, 0, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.WebPublishObject), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(2 /*:sourceObject*/, 0, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.WebPublishObject), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(3 /*:destinationFile*/, 1, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.WebPublishObject), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(1 /*:divId*/, 1, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.WebPublishObject), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueRangeConstraint(0 /*:id*/, true, 1, true, 2147483647, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Break), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueRangeConstraint(1 /*:min*/, true, double.NegativeInfinity, true, 1048576, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Break), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueRangeConstraint(0 /*:id*/, true, 1, true, 1048576, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Break), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueRangeConstraint(2 /*:max*/, true, 1, true, 1048576, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Color), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueRangeConstraint(4 /*:tint*/, true, -1, true, 1, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Color), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueRangeConstraint(1 /*:indexed*/, true, double.NegativeInfinity, true, 255, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Color), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueRangeConstraint(3 /*:theme*/, true, 0, true, 255, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Control), FileFormatVersions.Office2007, ApplicationType.Excel, new UniqueAttributeValueConstraint(2 /*:name*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Control), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(2 /*:name*/, 0, 32));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.DataBar), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueRangeConstraint(1 /*:maxLength*/, true, double.NegativeInfinity, true, 100, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.DataBar), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueRangeConstraint(0 /*:minLength*/, true, double.NegativeInfinity, true, 100, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.DataValidations), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueRangeConstraint(1 /*:xWindow*/, true, double.NegativeInfinity, true, 65535, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.DataValidations), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueRangeConstraint(2 /*:yWindow*/, true, double.NegativeInfinity, true, 65535, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.DataValidations), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueRangeConstraint(3 /*:count*/, true, double.NegativeInfinity, true, 65535, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.InputCells), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(3 /*:val*/, 0, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.PageSetup), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueRangeConstraint(3 /*:fitToWidth*/, true, double.NegativeInfinity, true, 32767, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.PageSetup), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueRangeConstraint(4 /*:fitToHeight*/, true, double.NegativeInfinity, true, 32767, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.PageSetup), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueRangeConstraint(15 /*:copies*/, true, 1, true, 32767, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.ChartSheetPageSetup), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueRangeConstraint(9 /*:copies*/, true, 1, true, 32767, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.PageSetup), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueRangeConstraint(13 /*:horizontalDpi*/, true, 1, true, double.PositiveInfinity, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.ChartSheetPageSetup), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueRangeConstraint(7 /*:horizontalDpi*/, true, 1, true, double.PositiveInfinity, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.PageSetup), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueRangeConstraint(14 /*:verticalDpi*/, true, 1, true, double.PositiveInfinity, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.ChartSheetPageSetup), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueRangeConstraint(8 /*:verticalDpi*/, true, 1, true, double.PositiveInfinity, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.PivotSelection), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueRangeConstraint(14 /*:previousCol*/, true, double.NegativeInfinity, true, 16383, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.PivotSelection), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueRangeConstraint(13 /*:previousRow*/, true, double.NegativeInfinity, true, 1048575, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Scenario), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueRangeConstraint(3 /*:count*/, true, 1, true, 32, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Scenario), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(0 /*:name*/, 0, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Scenario), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(4 /*:user*/, 1, 54));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Scenario), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(5 /*:comment*/, 0, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Selection), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueRangeConstraint(1 /*:activeCell*/, true, double.NegativeInfinity, true, 8191, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Table), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueRangeConstraint(0 /*:id*/, true, 1, true, 4294967294, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Table), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(1 /*:name*/, 0, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Table), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(3 /*:comment*/, 0, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Table), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(19 /*:dataCellStyle*/, 1, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Table), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(18 /*:headerRowCellStyle*/, 1, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Table), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(20 /*:totalsRowCellStyle*/, 1, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Table), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueRangeConstraint(21 /*:connectionId*/, true, double.NegativeInfinity, true, 2147483647, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.TableColumn), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(1 /*:uniqueName*/, 0, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.TableStyleInfo), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(0 /*:name*/, 1, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.XmlColumnProperties), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueRangeConstraint(0 /*:mapId*/, true, 1, true, 21474836477, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.XmlCellProperties), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(1 /*:uniqueName*/, 1, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.CalculationCell), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueRangeConstraint(1 /*:i*/, true, 1, true, 65534, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Alignment), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueRangeConstraint(4 /*:indent*/, true, double.NegativeInfinity, true, 255, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Alignment), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueSetConstraint(8 /*:readingOrder*/, true, new string[] { "0", "1", "2" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.FontFamily), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueRangeConstraint(0 /*:val*/, true, 0, true, 5, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.FontName), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(0 /*:val*/, 1, 31));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.TableStyle), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(0 /*:name*/, 1, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Column), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLessEqualToAnother(0 /*:min*/, 1 /*:max*/, true) );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.BooleanItem), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(3 /*:c*/, 0, 65535));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.CacheHierarchy), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(13 /*:displayFolder*/, 0, 65535));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.CacheHierarchy), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(14 /*:measureGroup*/, 0, 65535));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.CacheHierarchy), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueRangeConstraint(5 /*:iconSet*/, true, 0, true, 11, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.CalculatedMember), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(2 /*:memberName*/, 1, 65535));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.CalculatedMember), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(3 /*:hierarchy*/, 1, 65535));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.CalculatedMember), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(4 /*:parent*/, 1, 65535));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.DateTimeItem), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(3 /*:c*/, 0, 65535));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Dimension), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(3 /*:caption*/, 1, 65535));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Dimension), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(1 /*:name*/, 1, 65535));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Dimension), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(2 /*:uniqueName*/, 1, 32767));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.ErrorItem), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(3 /*:c*/, 0, 65535));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.GroupMember), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(0 /*:uniqueName*/, 1, 65535));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Item), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeRequiredConditionToValue(8 /*:x*/, 1 /*:t*/ , "data") );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Kpi), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(1 /*:caption*/, 1, 32767));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Kpi), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(2 /*:displayFolder*/, 0, 65535));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Kpi), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(3 /*:measureGroup*/, 0, 65535));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Kpi), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(4 /*:parent*/, 0, 32767));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.MissingItem), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(2 /*:c*/, 0, 65535));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.MeasureGroup), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(1 /*:caption*/, 1, 65535));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.MeasureGroup), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(0 /*:name*/, 1, 65535));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.NumberItem), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(3 /*:c*/, 0, 65535));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.NumberItem), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueSetConstraint(0 /*:v*/, false, new string[] { "INF", "-INF", "NaN" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.PivotTableDefinition), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(11 /*:dataCaption*/, 0, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.PivotTableDefinition), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(12 /*:grandTotalCaption*/, 0, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.PivotTableDefinition), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(13 /*:errorCaption*/, 0, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.PivotTableDefinition), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(15 /*:missingCaption*/, 0, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.PivotTableDefinition), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(17 /*:pageStyle*/, 0, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.PivotTableDefinition), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(18 /*:pivotTableStyle*/, 0, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.PivotTableDefinition), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(19 /*:vacatedStyle*/, 0, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.PivotTableDefinition), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(0 /*:name*/, 0, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.PivotTableDefinition), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(20 /*:tag*/, 0, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.PivotTableStyle), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(0 /*:name*/, 0, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.StringItem), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(3 /*:c*/, 0, 65535));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.TupleSet), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(2 /*:setDefinition*/, 0, 65535));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.TupleSet), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueRangeConstraint(1 /*:maxRank*/, true, 0, true, 1048576, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Tuple), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeMutualExclusive(0, 1) /*:fld, :hier*/ );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Header), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueRangeConstraint(2 /*:maxSheetId*/, true, double.NegativeInfinity, true, 32767, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Header), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(3 /*:userName*/, 1, 54));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Header), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueRangeConstraint(5 /*:minRId*/, true, double.NegativeInfinity, true, 2147483647, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.NewCell), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueSetConstraint(3 /*:cm*/, true, new string[] { "0" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.NewCell), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueSetConstraint(4 /*:vm*/, true, new string[] { "0" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.NewCell), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueSetConstraint(1 /*:s*/, true, new string[] { "0" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.RevisionAutoFormat), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueRangeConstraint(0 /*:sheetId*/, true, double.NegativeInfinity, true, 32767, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.RevisionCellChange), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueRangeConstraint(3 /*:sId*/, true, double.NegativeInfinity, true, 32767, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.RevisionDefinedName), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(22 /*:comment*/, 0, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.RevisionDefinedName), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(23 /*:oldComment*/, 0, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.RevisionDefinedName), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueRangeConstraint(0 /*:rId*/, true, double.NegativeInfinity, true, 2147483647, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.RevisionInsertSheet), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueRangeConstraint(3 /*:sheetId*/, true, double.NegativeInfinity, true, 32767, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.RevisionInsertSheet), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueRangeConstraint(5 /*:sheetPosition*/, true, double.NegativeInfinity, true, 65533, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Users), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueRangeConstraint(0 /*:count*/, true, double.NegativeInfinity, true, 256, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.DeletedField), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(0 /*:name*/, 1, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Connection), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueRangeConstraint(4 /*:interval*/, true, double.NegativeInfinity, true, 32767, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Connection), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(5 /*:name*/, 1, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Connection), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(6 /*:description*/, 0, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Connection), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(19 /*:singleSignOnId*/, 0, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Connection), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(2 /*:odcFile*/, 0, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Connection), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(1 /*:sourceFile*/, 0, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.DatabaseProperties), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(0 /*:connection*/, 0, 65535));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.TextProperties), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueRangeConstraint(4 /*:firstRow*/, true, double.NegativeInfinity, true, 2147483647, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.TextProperties), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(5 /*:sourceFile*/, 1, 218));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.TextProperties), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeRequiredConditionToValue(5 /*:sourceFile*/, 0 /*:prompt*/ , "false") );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Values), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueRangeConstraint(1 /*:cols*/, true, 1, true, 16384, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Values), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueRangeConstraint(0 /*:rows*/, true, 1, true, 1048576, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Main), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(0 /*:first*/, 1, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.TopicReferences), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueRangeConstraint(1 /*:s*/, true, 1, true, 65534, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.DataBinding), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(0 /*:DataBindingName*/, 0, 65535));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.DataBinding), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(3 /*:FileBindingName*/, 0, 65535));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.DataBinding), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueRangeConstraint(2 /*:ConnectionID*/, true, double.NegativeInfinity, true, 2147483647, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.DataBinding), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeAbsentConditionToValue(3 /*:FileBindingName*/, 1 /*:FileBinding*/ , "false") );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Schema), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(0 /*:ID*/, 0, 65535));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Schema), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(1 /*:SchemaRef*/, 0, 65535));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Spreadsheet.Schema), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueLengthConstraint(2 /*:Namespace*/, 0, 65535));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Drawing.Charts.PageSetup), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueRangeConstraint(0 /*:paperSize*/, true, double.NegativeInfinity, true, 2147483647, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.Spreadsheet.ClientData), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueSetConstraint(0 /*:ObjectType*/, false, new string[] { "Movie" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Vml.Spreadsheet.ClientData), FileFormatVersions.Office2007, ApplicationType.Excel, new AttributeValueSetConstraint(0 /*:ObjectType*/, false, new string[] { "LineA", "RectA" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Presentation.CustomShowReference), FileFormatVersions.Office2007, ApplicationType.PowerPoint, new UniqueAttributeValueConstraint(0 /*:id*/, false, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Presentation.ModificationVerifier), FileFormatVersions.Office2007, ApplicationType.PowerPoint, new AttributeValueSetConstraint(3 /*:cryptAlgorithmSid*/, true, new string[] { "1", "2", "3", "4", "12", "13", "14" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Presentation.ModificationVerifier), FileFormatVersions.Office2007, ApplicationType.PowerPoint, new AttributeValueSetConstraint(11 /*:cryptProviderTypeExtSource*/, true, new string[] { "wincrypt", "" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Presentation.ModificationVerifier), FileFormatVersions.Office2007, ApplicationType.PowerPoint, new AttributeValueSetConstraint(9 /*:algIdExtSource*/, true, new string[] { "wincrypt", "" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Presentation.Presentation), FileFormatVersions.Office2007, ApplicationType.PowerPoint, new AttributeValueRangeConstraint(1 /*:firstSlideNum*/, true, 0, true, 9999, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Presentation.Transition), FileFormatVersions.Office2007, ApplicationType.PowerPoint, new AttributeValueRangeConstraint(3 /*:advTm*/, true, 0, true, 2147483647, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Presentation.Tag), FileFormatVersions.Office2007, ApplicationType.PowerPoint, new UniqueAttributeValueConstraint(0 /*:name*/, false, typeof(DocumentFormat.OpenXml.Presentation.TagList)));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Presentation.AnimateMotion), FileFormatVersions.Office2007, ApplicationType.PowerPoint, new AttributeValueRangeConstraint(3 /*:rAng*/, true, -2147483554, true, 2147483554, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Presentation.AnimateRotation), FileFormatVersions.Office2007, ApplicationType.PowerPoint, new AttributeValueRangeConstraint(0 /*:by*/, true, -2147483554, true, 2147483554, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Presentation.AnimateRotation), FileFormatVersions.Office2007, ApplicationType.PowerPoint, new AttributeValueRangeConstraint(1 /*:from*/, true, -2147483554, true, 2147483554, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Presentation.AnimateRotation), FileFormatVersions.Office2007, ApplicationType.PowerPoint, new AttributeValueRangeConstraint(2 /*:to*/, true, -2147483554, true, 2147483554, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Presentation.BuildDiagram), FileFormatVersions.Office2007, ApplicationType.PowerPoint, new ReferenceExistConstraint(1 /*:grpId*/, ".", typeof(DocumentFormat.OpenXml.Presentation.CommonTimeNode), "DocumentFormat.OpenXml.Presentation.CommonTimeNode", 19 /*:grpId*/));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Presentation.BuildDiagram), FileFormatVersions.Office2007, ApplicationType.PowerPoint, new ReferenceExistConstraint(0 /*:spid*/, ".", typeof(DocumentFormat.OpenXml.Presentation.NonVisualDrawingProperties), "DocumentFormat.OpenXml.Presentation.NonVisualDrawingProperties", 0 /*:id*/));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Presentation.BuildGraphics), FileFormatVersions.Office2007, ApplicationType.PowerPoint, new ReferenceExistConstraint(0 /*:spid*/, ".", typeof(DocumentFormat.OpenXml.Presentation.NonVisualDrawingProperties), "DocumentFormat.OpenXml.Presentation.NonVisualDrawingProperties", 0 /*:id*/));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Presentation.BuildGraphics), FileFormatVersions.Office2007, ApplicationType.PowerPoint, new ReferenceExistConstraint(1 /*:grpId*/, ".", typeof(DocumentFormat.OpenXml.Presentation.CommonTimeNode), "DocumentFormat.OpenXml.Presentation.CommonTimeNode", 19 /*:grpId*/));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Presentation.BuildOleChart), FileFormatVersions.Office2007, ApplicationType.PowerPoint, new ReferenceExistConstraint(0 /*:spid*/, ".", typeof(DocumentFormat.OpenXml.Presentation.NonVisualDrawingProperties), "DocumentFormat.OpenXml.Presentation.NonVisualDrawingProperties", 0 /*:id*/));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Presentation.BuildOleChart), FileFormatVersions.Office2007, ApplicationType.PowerPoint, new ReferenceExistConstraint(1 /*:grpId*/, ".", typeof(DocumentFormat.OpenXml.Presentation.CommonTimeNode), "DocumentFormat.OpenXml.Presentation.CommonTimeNode", 19 /*:grpId*/));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Presentation.BuildParagraph), FileFormatVersions.Office2007, ApplicationType.PowerPoint, new ReferenceExistConstraint(0 /*:spid*/, ".", typeof(DocumentFormat.OpenXml.Presentation.NonVisualDrawingProperties), "DocumentFormat.OpenXml.Presentation.NonVisualDrawingProperties", 0 /*:id*/));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Presentation.CommonTimeNode), FileFormatVersions.Office2007, ApplicationType.PowerPoint, new AttributeValueSetConstraint(7 /*:spd*/, false, new string[] { "0" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Presentation.TimePercentage), FileFormatVersions.Office2007, ApplicationType.PowerPoint, new AttributeValueRangeConstraint(0 /*:val*/, true, double.NegativeInfinity, true, 2147483625, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Presentation.Template), FileFormatVersions.Office2007, ApplicationType.PowerPoint, new AttributeValueRangeConstraint(0 /*:lvl*/, true, double.NegativeInfinity, true, 9, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Presentation.Template), FileFormatVersions.Office2007, ApplicationType.PowerPoint, new UniqueAttributeValueConstraint(0 /*:lvl*/, true, typeof(DocumentFormat.OpenXml.Presentation.TemplateList)));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Word.DocumentId), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueRangeConstraint(0 /*w14:val*/, true, 0, false, 2147483648, false));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.Paragraph), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueRangeConstraint(5 /*w14:paraId*/, true, 0, false, 2147483648, false));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.TableRow), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueRangeConstraint(4 /*w14:paraId*/, true, 0, false, 2147483648, false));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.Paragraph), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueRangeConstraint(6 /*w14:textId*/, true, 0, false, 2147483648, false));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.TableRow), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueRangeConstraint(5 /*w14:textId*/, true, 0, false, 2147483648, false));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Word.StyleSet), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueRangeConstraint(0 /*w14:id*/, true, 1, true, 20, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.CompatibilitySetting), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueConditionToAnother(2 /*w:val*/, 0 /*w:name*/, new string[] { "11", "12", "14", "15" }, new string[] { "compatibilityMode" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.PowerPoint.MediaBookmark), FileFormatVersions.Office2010, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*:name*/, true, typeof(DocumentFormat.OpenXml.Office2010.PowerPoint.MediaBookmarkList)));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.PowerPoint.MediaBookmark), FileFormatVersions.Office2010, ApplicationType.All, new UniqueAttributeValueConstraint(1 /*:time*/, true, typeof(DocumentFormat.OpenXml.Office2010.PowerPoint.MediaBookmarkList)));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.InkML.Channel), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueSetConstraint(8 /*:units*/, true, new string[] { "dev", "in", "cm", "deg", "rad", "s", "lb", "g" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.EMMA.Interpretation), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValuePatternConstraint(0 /*:id*/, @"[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}"));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.EMMA.Interpretation), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueSetConstraint(16 /*emma:mode*/, true, new string[] { "ink" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.EMMA.OneOf), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueSetConstraint(0 /*:disjunction-type*/, true, new string[] { "recognition" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Drawing.CameraTool), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValuePatternConstraint(1 /*:spid*/, @"_x0000_s(102[5-9]|10[3-9][0-9]|1[1-9][0-9]{2}|[1-9][0-9]{3,7}|1[0-9]{8}|2[0-5][0-9]{7}|26[0-7][0-9]{6}|268[0-3][0-9]{5}|2684[0-2][0-9]{4}|26843[0-4][0-9]{3}|268435[0-3][0-9]{2}|2684354[0-4][0-9]|26843545[0-6])"));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Drawing.CompatExtension), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValuePatternConstraint(0 /*:spid*/, @"_x0000_s(102[5-9]|10[3-9][0-9]|1[1-9][0-9]{2}|[1-9][0-9]{3,7}|1[0-9]{8}|2[0-5][0-9]{7}|26[0-7][0-9]{6}|268[0-3][0-9]{5}|2684[0-2][0-9]{4}|26843[0-4][0-9]{3}|268435[0-3][0-9]{2}|2684354[0-4][0-9]|26843545[0-6])"));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.DataValidations), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueRangeConstraint(1 /*:xWindow*/, true, double.NegativeInfinity, true, 65535, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.DataValidation), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueLengthConstraint(9 /*:error*/, 0, 225));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.DataValidation), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueLengthConstraint(10 /*:promptTitle*/, 0, 32));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.DataValidation), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueLengthConstraint(11 /*:prompt*/, 0, 225));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.SeriesColor), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueSetConstraint(0 /*:auto*/, true, new string[] { "false" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.NegativeColor), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueSetConstraint(0 /*:auto*/, true, new string[] { "false" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.AxisColor), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueSetConstraint(0 /*:auto*/, true, new string[] { "false" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.MarkersColor), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueSetConstraint(0 /*:auto*/, true, new string[] { "false" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.FirstMarkerColor), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueSetConstraint(0 /*:auto*/, true, new string[] { "false" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.LastMarkerColor), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueSetConstraint(0 /*:auto*/, true, new string[] { "false" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.HighMarkerColor), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueSetConstraint(0 /*:auto*/, true, new string[] { "false" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.SparklineGroup), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueConditionToAnother(1 /*:manualMin*/, 14 /*:minAxisType*/, new string[] { "0" }, new string[] { "individual", "group" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.SparklineGroup), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueRangeConstraint(2 /*:lineWeight*/, true, 0, true, 1584, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.WorkbookProperties), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueSetConstraint(0 /*:defaultImageDpi*/, true, new string[] { "96", "150", "220" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.CalculatedMember), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueLengthConstraint(0 /*:displayFolder*/, 0, 65535));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.CalculatedMember), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueLengthConstraint(4 /*:mdxLong*/, 32766, 1073741822));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.TupleSetHeader), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueLengthConstraint(0 /*:uniqueName*/, 0, 65535));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.TupleSetHeader), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueLengthConstraint(1 /*:hierarchyName*/, 0, 65535));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.TupleSetRowItem), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueLengthConstraint(0 /*:u*/, 0, 65535));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.TupleSetRowItem), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueLengthConstraint(1 /*:d*/, 0, 65535));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.SetLevel), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueRangeConstraint(0 /*:hierarchy*/, true, -2, true, double.PositiveInfinity, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.DataField), FileFormatVersions.Office2010, ApplicationType.All, new UniqueAttributeValueConstraint(2 /*:uniqueName*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.DataField), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueLengthConstraint(2 /*:uniqueName*/, 0, 65535));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.ConditionalFormattingRule), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueRangeConstraint(1 /*:priority*/, true, 0, false, double.PositiveInfinity, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.ConditionalFormattingRule), FileFormatVersions.Office2010, ApplicationType.All, new UniqueAttributeValueConstraint(1 /*:priority*/, true, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.ConditionalFormattingRule), FileFormatVersions.Office2010, ApplicationType.All, new AttributeAbsentConditionToNonValue(3 /*:aboveAverage*/, 0 /*:type*/ , "aboveAverage") );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.ConditionalFormattingRule), FileFormatVersions.Office2010, ApplicationType.All, new AttributeAbsentConditionToNonValue(4 /*:percent*/, 0 /*:type*/ , "top10") );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.ConditionalFormattingRule), FileFormatVersions.Office2010, ApplicationType.All, new AttributeAbsentConditionToNonValue(5 /*:bottom*/, 0 /*:type*/ , "top10") );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.ConditionalFormattingRule), FileFormatVersions.Office2010, ApplicationType.All, new AttributeAbsentConditionToNonValue(7 /*:text*/, 0 /*:type*/ , "beginsWith", "containsText", "endsWith", "notContainsText") );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.ConditionalFormattingRule), FileFormatVersions.Office2010, ApplicationType.All, new AttributeAbsentConditionToNonValue(8 /*:timePeriod*/, 0 /*:type*/ , "timePeriod") );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.ConditionalFormattingRule), FileFormatVersions.Office2010, ApplicationType.All, new AttributeAbsentConditionToNonValue(10 /*:stdDev*/, 0 /*:type*/ , "aboveAverage") );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.ConditionalFormattingRule), FileFormatVersions.Office2010, ApplicationType.All, new AttributeAbsentConditionToNonValue(11 /*:equalAverage*/, 0 /*:type*/ , "aboveAverage") );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.DataBar), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueLessEqualToAnother(0 /*:minLength*/, 1 /*:maxLength*/, true) );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.DataBar), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueRangeConstraint(1 /*:maxLength*/, true, double.NegativeInfinity, true, 100, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.PivotTableDefinition), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueLengthConstraint(3 /*:altText*/, 0, 2000));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.PivotTableDefinition), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueLengthConstraint(4 /*:altTextSummary*/, 0, 2000));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.PivotTableDefinition), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueLengthConstraint(8 /*:weightExpression*/, 0, 65535));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.Connection), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueLengthConstraint(0 /*:culture*/, 0, 84));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.Connection), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueLengthConstraint(1 /*:embeddedDataId*/, 0, 65535));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.Table), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueLengthConstraint(0 /*:altText*/, 0, 25000));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.Table), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueLengthConstraint(1 /*:altTextSummary*/, 0, 50000));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.PivotChange), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueLengthConstraint(1 /*:weightExpression*/, 1, 65535));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.PivotEditValue), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueLengthConstraint(0 /*:valueType*/, 1, 32767));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.SlicerStyle), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueLengthConstraint(0 /*:name*/, 1, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.SlicerStyle), FileFormatVersions.Office2010, ApplicationType.All, new ReferenceExistConstraint(0 /*:name*/, ".", typeof(DocumentFormat.OpenXml.Spreadsheet.TableStyle), "DocumentFormat.OpenXml.Spreadsheet.TableStyle", 0 /*:name*/));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.SlicerStyle), FileFormatVersions.Office2010, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*:name*/, true, typeof(DocumentFormat.OpenXml.Office2010.Excel.SlicerStyles)));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.SlicerStyleElement), FileFormatVersions.Office2010, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*:type*/, true, typeof(DocumentFormat.OpenXml.Office2010.Excel.SlicerStyleElements)));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.SlicerStyleElement), FileFormatVersions.Office2010, ApplicationType.All, new IndexReferenceConstraint(1 /*:dxfId*/, ".", null, typeof(DocumentFormat.OpenXml.Spreadsheet.DifferentialFormat), "DocumentFormat.OpenXml.Spreadsheet.DifferentialFormat", 0));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.ConditionalFormat), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueSetConstraint(1 /*:type*/, true, new string[] { "none" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.ConditionalFormat), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueRangeConstraint(2 /*:priority*/, true, 1, true, double.PositiveInfinity, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.ConditionalFormat), FileFormatVersions.Office2010, ApplicationType.All, new ReferenceExistConstraint(2 /*:priority*/, "..", typeof(DocumentFormat.OpenXml.Office2010.Excel.ConditionalFormattingRule), "DocumentFormat.OpenXml.Office2010.Excel.ConditionalFormattingRule", 1 /*:priority*/));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.SlicerStyles), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueLengthConstraint(0 /*:defaultSlicerStyle*/, 1, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.ProtectedRange), FileFormatVersions.Office2010, ApplicationType.All, new AttributeMutualExclusive(0, 1) /*:password, :algorithmName*/ );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.ProtectedRange), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueRangeConstraint(4 /*:spinCount*/, true, double.NegativeInfinity, true, 10000000, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.ProtectedRange), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueLengthConstraint(5 /*:name*/, 1, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.SortCondition), FileFormatVersions.Office2010, ApplicationType.All, new AttributeAbsentConditionToValue(4 /*:dxfId*/, 1 /*:sortBy*/ , "icon", "value") );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.SortCondition), FileFormatVersions.Office2010, ApplicationType.All, new AttributeAbsentConditionToNonValue(5 /*:iconSet*/, 1 /*:sortBy*/ , "icon") );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.SortCondition), FileFormatVersions.Office2010, ApplicationType.All, new AttributeAbsentConditionToNonValue(6 /*:iconId*/, 1 /*:sortBy*/ , "icon") );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.FormControlProperties), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueRangeConstraint(3 /*:dropLines*/, true, 0, true, 30000, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.FormControlProperties), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueRangeConstraint(12 /*:inc*/, true, 0, true, 30000, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.FormControlProperties), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueRangeConstraint(15 /*:max*/, true, 0, true, 30000, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.FormControlProperties), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueRangeConstraint(16 /*:min*/, true, 0, true, 30000, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.FormControlProperties), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueRangeConstraint(20 /*:page*/, true, 0, true, 30000, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.DatastoreItem), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueLengthConstraint(0 /*:id*/, 0, 65535));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.Slicer), FileFormatVersions.Office2010, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*:name*/, false, null));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.Slicer), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueLengthConstraint(0 /*:name*/, 1, 32767));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.Slicer), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueLengthConstraint(2 /*:caption*/, 1, int.MaxValue));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.Slicer), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueRangeConstraint(4 /*:columnCount*/, true, 1, true, 20000, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.SlicerCachePivotTable), FileFormatVersions.Office2010, ApplicationType.All, new ReferenceExistConstraint(0 /*:tabId*/, "/WorkbookPart", typeof(DocumentFormat.OpenXml.Spreadsheet.Sheet), "DocumentFormat.OpenXml.Spreadsheet.Sheet", 1 /*:sheetId*/));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.OlapSlicerCacheRange), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValuePatternConstraint(0 /*:startItem*/, @"(0|[1-9][0-9]*000)"));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.OlapSlicerCacheLevelData), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueLengthConstraint(0 /*:uniqueName*/, 1, 32767));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.TabularSlicerCacheItem), FileFormatVersions.Office2010, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*:x*/, true, typeof(DocumentFormat.OpenXml.Office2010.Excel.TabularSlicerCacheItems)));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office.Word.Mcd), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueLengthConstraint(1 /*wne:name*/, 0, 255));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office.Word.Mcd), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueSetConstraint(3 /*wne:bEncrypt*/, true, new string[] { "0" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office.Word.Mcd), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueSetConstraint(4 /*wne:cmg*/, true, new string[] { "56" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.DefinedName), FileFormatVersions.Office2010, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*:name*/, true, typeof(DocumentFormat.OpenXml.Office2010.Excel.DefinedNames)));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.ArgumentDescription), FileFormatVersions.Office2010, ApplicationType.All, new UniqueAttributeValueConstraint(0 /*:index*/, true, typeof(DocumentFormat.OpenXml.Office2010.Excel.ArgumentDescriptions)));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.CustomUI.ControlClone), FileFormatVersions.Office2010, ApplicationType.All, new AttributeMutualExclusive(0, 1) /*:size, :getSize*/ );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.CustomUI.ControlCloneQat), FileFormatVersions.Office2010, ApplicationType.All, new AttributeMutualExclusive(5, 6) /*:size, :getSize*/ );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.CustomUI.ButtonRegular), FileFormatVersions.Office2010, ApplicationType.All, new AttributeMutualExclusive(18, 20, 19, 21) /*:insertAfterMso, :insertAfterQ, :insertBeforeMso, :insertBeforeQ*/ );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.CustomUI.Button), FileFormatVersions.Office2010, ApplicationType.All, new AttributeMutualExclusive(0, 1) /*:size, :getSize*/ );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.FontSignature), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValuePatternConstraint(4 /*w:csb0*/, @"[0-9a-fA-F]{8}"));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Wordprocessing.FontSignature), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValuePatternConstraint(5 /*w:csb1*/, @"[0-9a-fA-F]{8}"));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.InkML.ActiveArea), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueSetConstraint(3 /*:units*/, true, new string[] { "dev", "in", "cm", "deg", "rad", "s", "lb", "g" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.InkML.SourceProperty), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueSetConstraint(2 /*:units*/, true, new string[] { "dev", "in", "cm", "deg", "rad", "s", "lb", "g" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.InkML.ChannelProperty), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueSetConstraint(3 /*:units*/, true, new string[] { "dev", "in", "cm", "deg", "rad", "s", "lb", "g" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.InkML.BrushProperty), FileFormatVersions.Office2010, ApplicationType.All, new AttributeValueSetConstraint(2 /*:units*/, true, new string[] { "dev", "in", "cm", "deg", "rad", "s", "lb", "g" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Presentation.ContentPart), FileFormatVersions.Office2010, ApplicationType.All, new RelationshipExistConstraint(1 /*r:id*/) );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.SlicerCache), FileFormatVersions.Office2010, ApplicationType.All, new RelationshipExistConstraint(0 /*r:id*/) );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.SlicerRef), FileFormatVersions.Office2010, ApplicationType.All, new RelationshipExistConstraint(0 /*r:id*/) );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.PowerPoint.Media), FileFormatVersions.Office2010, ApplicationType.All, new RelationshipExistConstraint(1 /*r:link*/) );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.PowerPoint.Media), FileFormatVersions.Office2010, ApplicationType.All, new RelationshipExistConstraint(0 /*r:embed*/) );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.DataValidations), FileFormatVersions.Office2010, ApplicationType.Excel, new AttributeValueRangeConstraint(2 /*:yWindow*/, true, double.NegativeInfinity, true, 65535, true));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.CacheHierarchy), FileFormatVersions.Office2010, ApplicationType.Excel, new AttributeValueConditionToAnother(0 /*:flattenHierarchies*/, 3 /*:ignore*/, new string[] { "false" }, new string[] { "true" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.CacheHierarchy), FileFormatVersions.Office2010, ApplicationType.Excel, new AttributeValueConditionToAnother(1 /*:measuresSet*/, 3 /*:ignore*/, new string[] { "false" }, new string[] { "true" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2010.Excel.CacheHierarchy), FileFormatVersions.Office2010, ApplicationType.Excel, new AttributeValueConditionToAnother(2 /*:hierarchizeDistinct*/, 3 /*:ignore*/, new string[] { "false" }, new string[] { "true" }));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2013.Word.CommentEx), FileFormatVersions.Office2013, ApplicationType.Word, new AttributeValuePatternConstraint(0 /*w15:paraId*/, @"[0-9a-fA-F]{8}"));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2013.Word.CommentEx), FileFormatVersions.Office2013, ApplicationType.Word, new AttributeValueLengthConstraint(2 /*w15:done*/, 1, int.MaxValue));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2013.WebExtentionPane.WebExtensionPartReference), FileFormatVersions.Office2013, ApplicationType.Word | ApplicationType.Excel, new RelationshipExistConstraint(0 /*r:id*/) );
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2013.WebExtension.WebExtension), FileFormatVersions.Office2013, ApplicationType.Word | ApplicationType.Excel, new AttributeValueLengthConstraint(0 /*:id*/, 1, 1000));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2013.WebExtension.WebExtensionStoreReference), FileFormatVersions.Office2013, ApplicationType.Word | ApplicationType.Excel, new AttributeValueLengthConstraint(0 /*:id*/, 1, 1000));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2013.Word.PresenceInfo), FileFormatVersions.Office2013, ApplicationType.Word, new AttributeValueLengthConstraint(0 /*w15:providerId*/, 1, 100));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2013.Word.PresenceInfo), FileFormatVersions.Office2013, ApplicationType.Word, new AttributeValueLengthConstraint(1 /*w15:userId*/, 1, 300));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2013.Theme.ThemeFamily), FileFormatVersions.Office2013, ApplicationType.Excel | ApplicationType.PowerPoint, new AttributeValueLengthConstraint(1 /*:id*/, 1, 100));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2013.ExcelAc.AbsolutePath), FileFormatVersions.Office2013, ApplicationType.Excel, new AttributeValueLengthConstraint(0 /*:url*/, 1, 1000));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2013.Excel.Timeline), FileFormatVersions.Office2013, ApplicationType.Excel, new AttributeValueLengthConstraint(0 /*:name*/, 1, 1000));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2013.PowerPoint.PresenceInfo), FileFormatVersions.Office2013, ApplicationType.PowerPoint, new AttributeValueLengthConstraint(1 /*:providerId*/, 1, 100));
			RegisterConstraint(typeof(DocumentFormat.OpenXml.Office2013.PowerPoint.PresenceInfo), FileFormatVersions.Office2013, ApplicationType.PowerPoint, new AttributeValueLengthConstraint(0 /*:userId*/, 1, 300));
		}
	}
}
